我有一个没有 main 方法的代码。该项目是使用以下命令执行的:
$mvn clean install -Dparam1="folder" -Dparam2="path"
在 Eclipse 或 IntelliJ 中,我只需要创建一个 Maven 执行器,将 goas 定义为
clean install
并使用 -Dparam
格式传递 Maven 参数。
在 VSCode 中,我看到了 3 种不同的方法并尝试了以下方法:
lunch.json
文件,在 mvn
中调用命令 mvnDebug
或 preLaunchTask
。{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"request": "launch",
...
"preLaunchTask": "mvnDebug",
"vmArgs": [ "clean", "install", "-Dparam1=\"blabla\"", "-Dparam2=\"blablabla\"" ]
}
]
}
我还测试了在没有
preLaunchTask
的情况下传递 vmArgs
中的所有命令。而且没有用。
task.json
文件和一个 launch.json
文件,该文件将调用 preLaunchTask
使用 taskName
的参数 task.json
中定义的名称创建的任务。{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"request": "launch",
"preLaunchTask": "Debug",
"name": "Launch Program",
"sourceMaps": true
}
]
还有
tasks.json
:
{
"version": "2.0.0",
"tasks": [
{
"label": "Debug",
"type": "java",
"script": "mvnDebug clean install -Dparam1=\"folderName\" -Dparam2=\"blablabla\"",
"problemMatcher": []
}
]
}
settings.json
:{
"maven.terminal.favorites": [
{
"alias": "CLEAN COMPILE",
"command": "clean install -Dparam1=\"value\" -Dparam2=\"blabla\"",
"debug": true
},
]
}
对于他们所有人,我在终端中收到了消息:
Listening for transport dt_socket at address: 56787
伙计们,我需要你们的是:
观察:我的JAVA版本是JDK11,但我也尝试过JDK 8。
非常感谢。
1.在
launch.json
中,属性vmArgs
是
JVM 的额外选项和系统属性(例如 -Xms -Xmx -D=),它接受字符串或字符串数组。 调试启动
所以它不适用于您的应用程序。
2.在
tasks.json
中,属性command
是要执行的命令;
3.建议使用该设置
maven.executable.options
,它指定所有 mvn 命令的默认选项。
我找到了更好的解决方案。您可以在tasks.json 文件中为任务执行设置环境变量。这允许我们设置官方 Maven 环境变量“JVM_CONFIG_MAVEN_PROPS”:
.vscode 目录中的示例tasks.json。该示例展示了如何传递构建以及稍后的 Spring Boot 执行的配置文件。
{
"version": "2.0.0",
"tasks": [
{
"label": "Build & Run PROD",
"type": "shell",
"command": "mvn",
"group": "build",
"options": {
"cwd": "${workspaceFolder}",
"env": {
"JVM_CONFIG_MAVEN_PROPS": "-Dspring.profiles.active=production -Dspring-boot.run.profiles=production"
}
},
"args": [
"clean",
"package",
"spring-boot:run",
"-Pproduction",
],
},
]
}
从 mvn.cmd 或 mvnw.cmd 中提取。作为背景信息,这将如何通过:
"%JAVACMD%" ^
%JVM_CONFIG_MAVEN_PROPS% ^
%MAVEN_OPTS% ^
%MAVEN_DEBUG_OPTS% ^
-classpath %CLASSWORLDS_JAR% ^
"-Dclassworlds.conf=%MAVEN_HOME%\bin\m2.conf" ^
"-Dmaven.home=%MAVEN_HOME%" ^
"-Dlibrary.jansi.path=%MAVEN_HOME%\lib\jansi-native" ^
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
%CLASSWORLDS_LAUNCHER% %MAVEN_ARGS% %MAVEN_CMD_LINE_ARGS%
希望这有帮助。