我有一个包含多个主类的 Maven 项目。我想从这些项目中生成可运行的 jar (包括所有依赖项)。我目前有以下构建配置(使用 maven.assembly):
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>classpath.to.my.mainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
他们是用 maven-assembly 实现这一目标的方法吗?如果没有,实现我的目标的最简单方法是什么?
最佳答案
你可以做到。您需要为您正在构建的每个 Artifact 单独执行(即,为每个 Artifact 提供自己的 id,但您可以将阶段保留为默认值),并且您需要指定 finalName 和 archive/manifest/mainClass 对于每个。
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>build-a</id>
<configuration>
<archive>
<manifest>
<mainClass>foobar.Aclass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>foobar_a.jar</finalName>
</configuration>
</execution>
<execution>
<id>build-b</id>
<configuration>
<archive>
<manifest>
<mainClass>foobar.Bclass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>foobar_b.jar</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
关于java - 从单个 Maven 项目创建多个可运行的 Jars(包括依赖项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8726884/