如何用maven包装时指定主类?

时间:2018-01-30 21:34:10

标签: java maven

我想知道是否有任何方法可以指定哪个主类我想让我的maven用作参考,比如

mvn package -DmainClass=com.myMainClass

不想修改pom或插件本身,只需将其作为参数发送,任何想法?

1 个答案:

答案 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