Skip to content

Commit 357d4a1

Browse files
committed
Fix #1975 Create Maven package run config
1 parent a83d58a commit 357d4a1

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

src/main/kotlin/creator/buildsystem/maven-steps.kt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import com.demonwav.mcdev.creator.step.WebsiteStep
2121
import com.demonwav.mcdev.util.invokeAndWait
2222
import com.demonwav.mcdev.util.runWriteAction
2323
import com.demonwav.mcdev.util.runWriteTask
24+
import com.intellij.execution.RunManager
2425
import com.intellij.ide.wizard.NewProjectWizardStep
2526
import com.intellij.openapi.fileEditor.FileDocumentManager
2627
import com.intellij.openapi.fileEditor.impl.NonProjectFileWritingAccessProvider
@@ -35,6 +36,8 @@ import java.nio.file.Path
3536
import java.util.concurrent.TimeUnit
3637
import kotlinx.coroutines.runBlocking
3738
import org.jetbrains.idea.maven.dom.model.MavenDomProjectModel
39+
import org.jetbrains.idea.maven.execution.MavenRunConfiguration
40+
import org.jetbrains.idea.maven.execution.MavenRunConfigurationType
3841
import org.jetbrains.idea.maven.project.importing.MavenImportingManager
3942

4043
private val pluginVersions by lazy {
@@ -165,5 +168,39 @@ class MavenImportStep(parent: NewProjectWizardStep) : AbstractLongRunningStep(pa
165168
} ?: return
166169

167170
promise.blockingGet(Int.MAX_VALUE, TimeUnit.SECONDS)
171+
172+
val buildSystemProps = findStep<BuildSystemPropertiesStep<*>>()
173+
addRunTaskConfiguration(project, buildSystemProps, "package")
174+
}
175+
176+
private fun addRunTaskConfiguration(
177+
project: Project,
178+
buildSystemProps: BuildSystemPropertiesStep<*>,
179+
task: String,
180+
) {
181+
val mavenConfigFactory = MavenRunConfigurationType.getInstance().configurationFactories.first()
182+
183+
val runManager = RunManager.getInstance(project)
184+
val runConfigName = buildSystemProps.artifactId + ' ' + task
185+
186+
val templateConfig = mavenConfigFactory.createTemplateConfiguration(project)
187+
val runConfiguration = mavenConfigFactory.createConfiguration(runConfigName, templateConfig)
188+
as MavenRunConfiguration
189+
runConfiguration.runnerParameters.goals.add(task)
190+
191+
runConfiguration.isAllowRunningInParallel = false
192+
193+
val settings = runManager.createConfiguration(
194+
runConfiguration,
195+
mavenConfigFactory,
196+
)
197+
198+
settings.isActivateToolWindowBeforeRun = true
199+
settings.storeInLocalWorkspace()
200+
201+
runManager.addConfiguration(settings)
202+
if (runManager.selectedConfiguration == null) {
203+
runManager.selectedConfiguration = settings
204+
}
168205
}
169206
}

0 commit comments

Comments
 (0)