我想执行一个位于test src文件夹中的主类。 我尝试过:
mvn -q exec:java \
-Dexec.mainClass=com.example.beanoverriding.EmbeddedApplication \
-Dexec.classpathScope="test"
但是得到:
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli) on project bean-overriding:
The parameters 'mainClass' for goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java are missing or invalid -> [Help 1]
查看实际代码:
编辑: 像这样写:
mvn -q exec:exec \
-Dexec.executable=java \
-Dexec.args="-cp %classpath com.example.beanoverriding.EmbeddedApplication" \
-Dexec.classpathScope="test"
答案 0 :(得分:0)
使用classpathScope = test(请参阅https://www.mojohaus.org/exec-maven-plugin/java-mojo.html#classpathScope)
答案 1 :(得分:0)
根据文档,您确实应该设置exec.mainClass属性。但这确实不是主要类别。
在执行带有-X
选项(mvn -X exec:java -Dexec.mainClass=com.example.beanoverriding.EmbeddedApplication -Dexec.classpathScope=test
的命令时,Maven显示有关配置的更多信息:
<configuration>
...
<classpathScope default-value="runtime">${exec.classpathScope}</classpathScope>
...
<mainClass>${start-class}</mainClass>
...
</configuration>
似乎主类是由start-class
属性设置的。因此似乎该属性在某些配置中被覆盖。确实如此。在spring-boot-starter-parent
pom中。参见https://github.com/spring-projects/spring-boot/blob/v2.1.0.RELEASE/spring-boot-project/spring-boot-starters/spring-boot-starter-parent/pom.xml
因此,使用您当前的配置,以下命令将完成此工作:
mvn -X exec:java -Dstart-class=com.example.beanoverriding.EmbeddedApplication -Dexec.classpathScope=test