我正在尝试使用Maven创建一个可执行jar文件,其中包含单独目录中的依赖项.我已经看到很多关于创造“uberjar”的问题 – 我不希望如此.我想要的是将依赖项复制到像这样的“lib”目录(以及带有指向它们的ClassPath条目的jar MANIFEST.MF文件):
/myApp
myApp.SNAPSHOT-1.0.jar
/lib
hibernate.jar
log4j.jar
...
如果我可以将/ src / main / resources / *复制到/ myApp / conf然后将整个/ myApp目录压缩到myApp.zip中,那将是一个额外的好处.
编辑:我使用maven-dependency-plugin和maven-resources-plugin以及maven-jar-plugin.这是我在我的pom.xml中包含的内容(它将运行时依赖项复制到/ target / release / lib,以便我可以压缩/目标/发布并准备好了):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<outputDirectory>
${project.build.directory}/release/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/release</outputDirectory>
<resources>
<resource>
<directory>src/main/config</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/release/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
最佳答案
maven依赖插件有一个复制依赖目标,可以做你想要的.
mvn dependency:copy-dependencies
有关可用选项,请参阅here.即’outputDirectory’将依赖项复制到/ lib
相关文章
- maven-2 - 使用Maven创建一个包含带有依赖项的可执行jar的zip文件
- java - 如何在lib文件夹中创建一个包含所有依赖项的Netbeans样式Jar?
- java - 是否可以创建一个包含项目类和项目依赖项的“uber”jar作为具有自定义清单文件的jar?
- java - 如何在Eclipse中使用其他外部jar依赖项创建一个不可运行/不可执行的jar
- java - 使用复制在lib文件夹中的外部.jar依赖项构建可执行文件.jar
- maven-2 - 如何使用Maven打包jar并在WEB-INF/lib中包含一些依赖项?
- java - 如何在Maven生成的jar中包含一个文件夹(不是文件夹的内容,实际的文件夹)
- 如何使用maven bundle插件在OSGi包中包含一个依赖jar?
转载注明原文:如何使用maven创建一个可运行的jar,其中包含一个单独的“lib”文件夹(不是超级jar)中的依赖项 - 代码日志