我有一个有效的IntelliJ IDEA运行配置。它使用Spring Boot。
我想从MacOS命令行执行相同的运行。如何让IntelliJ IDEA显示我需要执行运行配置的命令(或多个命令)。
这是gradle
build. gradle
文件:
plugins {
id 'org.springframework.boot' version '2.6.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'org.mountsinai'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = "15"
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
runtimeOnly 'com.microsoft.sqlserver:mssql-jdbc'
implementation group: 'org.springframework', name: 'spring-aspects', version: '5.3.15'
implementation group: 'nz.net.ultraq.thymeleaf', name: 'thymeleaf-layout-dialect', version: '3.0.0'
implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.7.0'
implementation group: 'com.github.pcj', name: 'google-options', version: '1.0.0'
implementation 'com.google.code.gson:gson:2.9.0'
}
tasks.named('test') {
useJUnitPlatform()
minHeapSize = "1024m" // initial heap size
maxHeapSize = "2048m" // maximum heap size
}
targetCompatibility = JavaVersion.VERSION_15
这是中的
对应于我想在命令行上自动化的运行:配置
元素。 /.idea/workspace.xml
<configuration name="IrwMetadataIntegrationApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<module name="org.mountsinai.IRWMetadataIntegration.main" />
<option name="SPRING_BOOT_MAIN_CLASS" value="org.mountsinai.IRWMetadataIntegration.IrwMetadataIntegrationApplication" />
<option name="PROGRAM_PARAMETERS" value="--algorithm=batch --numOfStudiesToRetrieve=600" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
<option name="ALTERNATIVE_JRE_PATH" value="15" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
现在可以更具体地询问我最初的问题如何将IDEA配置和workspace. xml
文件转换为可以在IntelliJ IDEA之外执行的命令(或脚本)?
使用
IntelliJ IDEA 2021.3.2 (Ultimate Edition) Build #IU-213.6777.52, built on January 27, 2022
谢了亚瑟
在你的控制台顶部注意,有一个命令什么的…java,通常它会折叠成这样短的形式,但是如果你点击它:
在这种情况下,例如,最终,命令是这样的:
/Users/hoaphan/.sdkman/candidates/java/17.0.4-amzn/bin/java -XX:TieredStopAtLevel=1
-Dspring.output.ansi.enabled=always
-Dcom.sun.management.jmxremote
-Dspring.jmx.enabled=true
-Dspring.liveBeansView.mbeanDomain
-Dspring.application.admin.enabled=true
...blahblahblahblahblah...
com.example.bootgradlej17.Bootgradlej17Application
所以你可以通过运行这么长的命令来模仿intelliJ。但我建议如果这是springboot,并且由gradle构建,你真正想做的是在项目根目录中,在你的build. gradle所在的目录中:
./gradlew bootRun
然后,您可以将bootRun配置为从这样的配置开始JVM,例如:
bootRun {
jvmArgs = "-Dspring.application.admin.enabled=true", "-Dnannana=nenenene" (etc)....
}
通过运行配置执行程序并检查输出的第一行。它应该包含IDE执行的调用,通常类似于java-jar…。
例如。当运行Scratch文件时,我在输出窗口中得到以下内容作为第一行:
/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -javaagent:/home/user/bin/idea-IU-222.3345.47/lib/idea_rt.jar=37117:/home/user/bin/idea-IU-222.3345.47/bin -Dfile.encoding=UTF-8 -classpath /home/user/.cache/JetBrains/IntelliJIdea2022.3/compile-server/backend_dd2372d5/scratches/out:... Scratch
继续我上面的评论…
相反,它们可以在您解释如何显示的java命令中找到。例如,我的是:
-Dspring.output.ansi.enabled=always
-Dcom.sun.management.jmxremote
-Dspring.jmx.enabled=true
-Dspring.liveBeansView.mbeanDomain
-Dspring.application.admin.enabled=true
...
请解释你
bootRun {
jvmArgs = "-Dspring.application.admin.enabled=true", "-Dnannana=nenenene" (etc)....
}
例子。应该在哪里以及如何使用这段文字?
还需要提供IDEA配置中的任何命令行参数。这些可以通过gradlew
--args
选项传递,如下所示:
--args='--算法=批处理--numOfStudiesToRetrieve=600'
然而,总的来说,这种方法比我想要的更特别。它需要一个hack a)IDEA的java命令来获取JVM参数,b)通过gradlew
的--args
中的命令行参数。但是我假设IntelliJ IDEA的开发人员的沉默表明他们不支持这个重要的功能。