如何使用maven创建一个可运行的jar,其中包含一个单独的“lib”文件夹(不是超级jar)中的依赖项
我正在尝试使用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,以便我可以压缩/目标/发布并准备好了):
org.apache.maven.plugins maven-dependency-plugin copy-dependencies package copy-dependencies runtime ${project.build.directory}/release/lib org.apache.maven.plugins maven-resources-plugin copy-resources package copy-resources ${project.build.directory}/release src/main/config true org.apache.maven.plugins maven-jar-plugin package jar ${project.build.directory}/release/lib
maven依赖插件有一个复制依赖目标,可以做你想要的。
mvn dependency:copy-dependencies
请参阅此处了解可用选项。 即’outputDirectory’将依赖项复制到/ lib