我想知道是否有任何方法可以指定哪个主类我想让我的maven用作参考,比如
mvn package -DmainClass=com.myMainClass
不想修改pom或插件本身,只需将其作为参数发送,任何想法?
答案 0 :(得分:2)
maven-jar-plugin
jar goal定义archive
参数
org.apache.maven.archiver.MavenArchiveConfiguration
类型定义了
mainClass
参数。
但是archive
参数没有关联User property
,允许在命令行执行中提供值作为参数。
请注意,允许将工件打包为JAR的maven-assembly-plugin
也不会更有帮助:archive
参数也未定义为User property
。
所以你没有选择(至少使用maven-jar-plugin
):你必须使用pom.xml中的mainClass
属性。
现在,如果它有意义,您可以使用从命令行传递的自定义用户属性在pom.xml中将此值设置为dynamic:value mainClass
。
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<mainClass>${my.mainClass}</mainClass>
</manifest>
</archive>
</configuration>
...
</plugin>
</plugins>
</build>
...
</project>
执行:
mvn package -Dmy.mainClass=com.myMainClass