一尘不染

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

java

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

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

1)鉴于我希望项目和库都在源代码管理中,因此使用maven将.jar文件添加到项目引用中的最佳选择是什么?

2)我似乎仍然无法让Eclipse看到依赖关系。我手动将其添加到pom的这一部分,它在m2eclipse的Dependencies列表中显示得很好。mvn编译和mvn软件包都成功,但是运行程序会导致:

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
        LibraryStuff cannot be resolved to a type

这是将POM编辑为:

<dependency>
  <groupId>stuff</groupId>
  <artifactId>library</artifactId>
  <version>1.0</version>
  <systemPath>${lib.location}/MyLibrary.jar</systemPath>
  <scope>system</scope>
</dependency>

我是否应该执行mvn install:install-file甚至认为我已经按照上面的方法编辑了pom.xml?

谢谢!


阅读 273

收藏
2020-03-13

共1个答案

一尘不染

我认为你应该使用mvn install:install-file库jar填充本地存储库,然后将范围从系统更改为编译。

如果你从maven开始,我建议直接使用maven而不是IDE插件,因为它会增加一层额外的复杂性。

至于错误,你是否将所需的jar放在类路径上?如果要使用库中的类型,则还需要在运行时中也可以访问它。这与Maven本身无关。

我不明白为什么要将库放到源代码管理中-它是针对源代码而不是二进制jar。

2020-03-13