gpt4 book ai didi

java - maven 不重新打包依赖项

转载 作者:行者123 更新时间:2023-12-01 05:32:38 24 4
gpt4 key购买 nike

我使用 Maven 程序集插件将所有依赖项收集到一个 jar 文件中。我怎样才能告诉maven不要重新打包依赖项并将它们作为jar文件包含到生成的jar中?

目前我使用以下插件配置。

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>package.Program</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>

想要的 jar 文件结构:

my-jar-with-dependencies.jar
|-dependency1.jar
|-|-class1.class
|-dependency2.jar
|-|-class2.class
|-...........

而不是

my-jar-with-dependencies.jar
|-class1.class
|-class2.class
|-.............

最佳答案

如果我正确理解了这个问题,您想要指定何时应该运行程序集插件。在这种情况下,您应该考虑创建 build profile并将程序集插件配置添加到新配置文件中。

在 pom.xml 添加:

<project>
...
<profiles>
<profile>
<id>myprofile</id>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>package.Program</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
...
</project>

当您希望 maven 运行程序集插件时,您可以使用 -P 开关切换到“mvn”脚本,如下所示:

mvn -Pmyprofile clean package

关于java - maven 不重新打包依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8724531/

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