gpt4 book ai didi

java - Maven:我的项目有一个不在任何 Maven 仓库(系统范围)中的依赖项。它会包含在我的最终 jar 中吗?

转载 作者:行者123 更新时间:2023-11-29 08:11:54 25 4
gpt4 key购买 nike

所以我的 maven 项目依赖于一个不在任何 maven 存储库中的 jar。因此,我需要使用系统范围将此本地文件包含在我的 Maven 类路径中。问题是:当我构建我的最终 jar 来分发我的库时,我确实需要以某种方式包含该依赖项。可以提取这些类,然后将其与我的库类捆绑在一起,或者可以以某种方式将 jar 包含在我的库 jar 中。我什至不确定后者(jar inside jar)在 Java 中是否可行。

那么我该如何解决这个问题呢? Maven 会接受我的系统范围依赖并为我处理吗?我该怎么办?

谢谢!

最佳答案

不,不会。这些依赖仅用于编译和传递依赖解析。你的图书馆消费者也应该有这个 jar 。但是,您可以使用 Assembly Plugin 将 jar 的类重新打包到您的 Artifact 中。

或者,标准方法:然后您将发布您的 Artifact ,您将创建一个用于部署的公共(public)存储库。您也可以在其中部署 jar。

UDPATE:为阴影插件添加示例(而不是程序集)

  <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>legacy-jar.groupId:legacyJar</include>
</includes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>

关于java - Maven:我的项目有一个不在任何 Maven 仓库(系统范围)中的依赖项。它会包含在我的最终 jar 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663405/

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