相关疑难解决方法(0)

Maven:通过相对路径为jar添加依赖项

我有一个专有的jar,我想作为依赖添加到我的pom.

但我不想将它添加到存储库.原因是我希望我的常用maven命令等mvn compile开箱即用.(没有要求开发人员将其自己添加到某个存储库中).

我希望jar在源代码控制中位于第3方库中,并通过pom.xml文件的相对路径链接到它.

可以这样做吗?怎么样?

java dependencies build-process maven-2 build

221
推荐指数
7
解决办法
27万
查看次数

Maven:将自定义外部JAR链接到我的项目的最佳方式?

这是我学习Maven的前几天,我仍然在努力学习基础知识.我有一个外部.jar文件(在公共存储库中不可用),我需要在我的项目中引用它,我正在试图找出我最好的选择.

这是一个没有库的中央存储库的小型项目,所以它必须是一个本地存储库(以某种方式添加到源代码控制,不知道它是否应该以这种方式工作?)或者.jar需要存储在任何正式存储库之外的磁盘.

1)我最好的选择是将.jar文件添加到项目的maven引用中,因为我希望项目和库都在源代码控制中?

2)我似乎还无法让Eclipse看到依赖.我手动将它添加到pom的部分,它在m2eclipse的Dependencies列表中显示正常.mvn compile和mvn包都成功,但运行程序导致:

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
        LibraryStuff cannot be resolved to a type
Run Code Online (Sandbox Code Playgroud)

这是在将POM编辑为:

<dependency>
  <groupId>stuff</groupId>
  <artifactId>library</artifactId>
  <version>1.0</version>
  <systemPath>${lib.location}/MyLibrary.jar</systemPath>
  <scope>system</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我是否应该执行mvn install:install-file,即使我已经编辑了如上所述的pom.xml?

谢谢!

java maven-2 m2eclipse maven

140
推荐指数
9
解决办法
24万
查看次数

具有依赖关系的Maven 2程序集:不包括范围"系统"下的jar

我正在使用maven-assembly插件来创建我的应用程序的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>
Run Code Online (Sandbox Code Playgroud)

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

到目前为止,这工作得很好,因为它创建了一个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>
Run Code Online (Sandbox Code Playgroud)

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

<files>
    <file>
        <source>external/jchart2d-3.1.0.jar</source>
        <outputDirectory>lib</outputDirectory>
    </file>
</files>
Run Code Online (Sandbox Code Playgroud)

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

我有试过<scope>runtime</scope>dependencySets<include>sourceforge.jchart2d:jchart2d</include>没有运气.

那么如何system在maven 2中将scoped jar 包含到汇编文件中?

非常感谢

maven-2 maven-plugin maven-assembly-plugin

59
推荐指数
4
解决办法
7万
查看次数