如何使用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