gpt4 book ai didi

java - 如何使用 Maven 创建一个可运行的 jar,它在一个单独的 "lib"文件夹中包含依赖项(不是 uber jar)

转载 作者:搜寻专家 更新时间:2023-11-01 02:31:02 25 4
gpt4 key购买 nike

我正在尝试使用 Maven 创建一个可执行的 jar 文件,该文件在单独的目录中包含依赖项。我在 SO 上看到很多关于创建“uberjar”的问题——我不想那样。我想要的是像这样将依赖项复制到“lib”目录中(以及带有指向它们的 MANIFEST.MF 条目的 jar ClassPath 文件):

/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 以便我可以压缩/target/release 并且它已准备就绪):

<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

关于java - 如何使用 Maven 创建一个可运行的 jar,它在一个单独的 "lib"文件夹中包含依赖项(不是 uber jar),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com