这是我学习 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 ?
谢谢!
我认为您应该使用mvn install:install-file库 jar 填充本地存储库,然后您应该将范围从系统更改为编译。
mvn install:install-file
如果您从 maven 开始,我建议直接使用 maven 而不是 IDE 插件,因为它增加了额外的复杂性。
至于错误,您是否将所需的 jars 放在类路径中?如果您使用库中的类型,则还需要在运行时访问它。这与maven本身无关。
我不明白您为什么要将库置于源代码管理中 - 它用于源代码而不是二进制 jar。