gpt4 book ai didi

maven-2 - 带有依赖项的 Maven 2 程序集 : jar under scope "system" not included

转载 作者:行者123 更新时间:2023-12-03 05:43:44 25 4
gpt4 key购买 nike

我正在使用 maven-assemble 插件创建我的应用程序的 jar,包括其依赖项,如下所示:

<assembly>
<id>macosx</id>
<formats>
<format>tar.gz</format>
<format>dir</format>
</formats>
<dependencySets>
<dependencySet>
<includes>
<include>*:jar</include>
</includes>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>

(我省略了一些与问题无关的其他内容)

到目前为止,这一切运行良好,因为它创建了 lib包含所有依赖项的目录。但是,我最近添加了一个新的依赖项,其范围是 system ,并且它不会将其复制到 lib输出目录。我一定缺少一些基本的东西,所以我寻求帮助。

我刚刚添加的依赖项是:

<dependency>
<groupId>sourceforge.jchart2d</groupId>
<artifactId>jchart2d</artifactId>
<version>3.1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/external/jchart2d-3.1.0.jar</systemPath>
</dependency>

我能够包含此依赖项的唯一方法是将以下内容添加到程序集元素:

<files>
<file>
<source>external/jchart2d-3.1.0.jar</source>
<outputDirectory>lib</outputDirectory>
</file>
</files>

但是,这迫使我在重命名此 jar 时(如果有的话)更改 pom 和程序集文件。而且,这似乎是错误的。

我尝试过<scope>runtime</scope>dependencySets<include>sourceforge.jchart2d:jchart2d</include>运气不好。

那么如何包含 system作用域 jar 到您的 maven 2 中的程序集文件?

非常感谢

最佳答案

对于未添加系统范围依赖项,我并不感到惊讶(毕竟,具有系统范围的依赖项必须通过定义显式提供)。实际上,如果您确实不想将该依赖项放入本地存储库中(例如因为您想将其作为项目的一部分进行分发),那么我会这样做:

  • 我会将依赖项放入项目本地的“文件系统存储库”中。
  • 我会在我的 pom.xml 中声明该存储库,如下所示:

    <repositories>
    <repository>
    <id>my</id>
    <url>file://${basedir}/my-repo</url>
    </repository>
    </repositories>
  • 我只会在没有系统范围的情况下声明工件,这只是麻烦的根源:

    <dependency>
    <groupId>sourceforge.jchart2d</groupId>
    <artifactId>jchart2d</artifactId>
    <version>3.1.0</version>
    </dependency>

我不能 100% 确定这会满足您的需求,但我认为这是比使用系统范围更好的解决方案。

更新:我应该在原来的答案中提到这一点,我现在正在修复它。要在基于文件的存储库中安装第三方库,请使用 install:install-filelocalRepositoryPath参数:

mvn install:install-file -Dfile=<path-to-file> \
-DgroupId=<myGroup> \
-DartifactId=<myArtifactId> \
-Dversion=<myVersion> \
-Dpackaging=<myPackaging> \
-DlocalRepositoryPath=<path-to-my-repo>

您可以将其按原样粘贴到 *nix shell 中。在 Windows 上,删除“\”并将所有内容放在一行中。

关于maven-2 - 带有依赖项的 Maven 2 程序集 : jar under scope "system" not included,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2065928/

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