@@ -21,6 +21,7 @@ import com.demonwav.mcdev.creator.step.WebsiteStep
2121import com.demonwav.mcdev.util.invokeAndWait
2222import com.demonwav.mcdev.util.runWriteAction
2323import com.demonwav.mcdev.util.runWriteTask
24+ import com.intellij.execution.RunManager
2425import com.intellij.ide.wizard.NewProjectWizardStep
2526import com.intellij.openapi.fileEditor.FileDocumentManager
2627import com.intellij.openapi.fileEditor.impl.NonProjectFileWritingAccessProvider
@@ -35,6 +36,8 @@ import java.nio.file.Path
3536import java.util.concurrent.TimeUnit
3637import kotlinx.coroutines.runBlocking
3738import org.jetbrains.idea.maven.dom.model.MavenDomProjectModel
39+ import org.jetbrains.idea.maven.execution.MavenRunConfiguration
40+ import org.jetbrains.idea.maven.execution.MavenRunConfigurationType
3841import org.jetbrains.idea.maven.project.importing.MavenImportingManager
3942
4043private 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