gpt4 book ai didi

Maven - 添加 jar-with-dependencies 作为依赖项

转载 作者:行者123 更新时间:2023-12-03 23:23:19 26 4
gpt4 key购买 nike

问题..
我想在 Maven jar 上添加一个依赖项,该 jar 与它的依赖项一起打包。

详情..
我有一个多模块 Maven 项目,其中一个模块依赖于 native 库等。作为其构建的一部分,它将其依赖项打包到 jar-with-dependencies 中。如此处所示:

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>

很好,我在构建时得到了两个 jar :
seaniscool-0.0.1-SNAPSHOT.jar
seaniscool-0.0.1-SNAPSHOT-jar-with-dependencies.jar

但是,我想在同一个项目的另一个模块中使用这个 Artifact 。如果我只是将模块添加为依赖项,我会得到不包含 native 库的 jar。

我也可以复制构建配置以在第二个模块中包含 native 库,它不是很广泛,但不希望这样做。

任何想法如何添加 jar-with-dependencies作为依赖项,因此依赖于包含的库?

一些想法..
我知道我可以用 Maven 可以引用的测试类构建一个单独的 jar:

在第一个模块中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>

在第二个模块中:
<dependency>
<groupId>my.group.id</groupId>
<artifactId>my.artifact.id</artifactId>
<version>my.version</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>

这个概念在这里可以转移吗?

最佳答案

您可以使用 maven classifier .使用分类器,因此 maven 模块可以从同一源构建多个 Artifact 。示例是 jdk1.6 或 1.7 版本,甚至是 maven 可以构建的源代码和 javadoc jars。

所以试试这个:

<dependency>
<groupId>yourID</groupId>
<artifactId>seaniscool</artifactId>
<version>0.0.1-SNAPSHOT</version>
<classifier>jar-with-dependencies</classifier>
</dependency>

如果您想将您的分类器重命名为更好的名称,例如 withNative 或 complete 或其他任何名称,请查看 maven shade plugin它也可以构建具有依赖关系的 jar,但允许更多控制。

关于Maven - 添加 jar-with-dependencies 作为依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16760968/

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