关于maven汇编插件的使用,当项目有多个主文件时,请提出一个小问题。
首先,我有一个只有一个主要班级的项目。这个主类使用了很多依赖项。因此,我用maven汇编插件打包了一个“uber jar”。
我知道这并不“常见”,但我想问一下技术细节。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.my.only.one.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<outputDirectory>./build/</outputDirectory>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
一切都很好,我确实得到了一个单独的jar文件,相当重,但做这项工作,如果我java-jar,它将运行唯一一个Main fine,非常高兴。
现在,我们有多个主文件。当然,使用完全相同的maven配置,即使编译了jar,在运行jar时,也只运行main。
<manifest>
<mainClass>com.my.only.one.Main</mainClass>
</manifest>
因此,我正在做一件我认为非常愚蠢的事情。
当我想运行第二个main时,我将maven文件更改为
<manifest>
<mainClass>com.my.second.MainFile</mainClass>
</manifest>
然后,让它编译、构建、复制jar,将其名称更改为“secondMain”,然后在第一个和第二个主文件之间来回更改代码,创建jar。
我觉得这很愚蠢,我想知道正确的表演方式是什么?
非常感谢。