我正在尝试创建用于使用maven构建的自动化解决方案。我的愿景是有一个Maven构建,它从我的项目中创建JAR文件,然后将所有依赖项作为JAR复制到"目标"文件夹中的某个子目录。
我不想使用Shade或Assembly(所以我不想提取其他JAR的内容并将其包含在一个"超级JAR"中,因为项目更复杂,当我将所有JAR包含在一份文件中时,它会中断)。
我怎样才能建立这样的POM?
我认为这里没有任何问题。只需使用<packaging>jar</packaging>
创建maven pom.xml默认情况下,它不应该将所有依赖库打包到您的jar中。
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
与您的最新评论相关,使用此插件在清单中添加主类:
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.test.YourMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
您可以使用maven汇编插件从目录中的其他文件中创建.zip文件。我已经使用这种方法为一个项目创建了分发zip文件。maven汇编插件文档中提供了几个示例。