gpt4 book ai didi

java - 如何使用 Maven 创建没有依赖项的可执行 jar?

转载 作者:太空狗 更新时间:2023-10-29 22:45:37 25 4
gpt4 key购买 nike

我不想将它打包在一个可执行的 jar 中以供分发。我需要一个类似于 main.jar 的可执行文件,所有依赖项都在 libs/*.jar

如何在不预先包含依赖库的情况下制作 maven 可执行 jar?

How can I create an executable JAR with dependencies using Maven? 2010 年 12 月 1 日 10:46 回答了一条注释André Aronsen,但那个根本不起作用(未设置失败的 s.a.descriptorRef)。

最佳答案

我更喜欢这个稍微修改过的解决方案。创建带有类路径集的可执行 jar,并将所有依赖项复制到给定目录。

您不需要任何其他文件。

在安装阶段正在复制依赖项。

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<!-- optional -->
<!-- exclude copying test and provided dependencies -->
<includeScope>runtime</includeScope>
<excludeScope>provided</excludeScope>
<!-- optional -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

我更新了答案以仅复制运行时依赖项,如 here - copying the right dependencies 所述。测试和提供的依赖项被排除在外。

It turns out that if you want to exclude dependencies from both the test and provided scopes, you need to exclude the provided scope and include the runtime scope.

关于java - 如何使用 Maven 创建没有依赖项的可执行 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325819/

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