小编典典

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

all

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

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

1) 考虑到我希望项目和库都在源代码控制中,使用 maven 将 .jar 文件添加到我的项目引用中的最佳选择是什么?

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

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 ?

谢谢!


阅读 55

收藏
2022-08-21

共1个答案

小编典典

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

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

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

我不明白您为什么要将库置于源代码管理中 - 它用于源代码而不是二进制 jar。

2022-08-21