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