Maven:将自定义外部JAR链接到我的项目的最佳方式?
这是我第一次学习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来填充你的本地仓库,然后你应该将系统的范围从系统改为编译。
如果你从maven开始,我建议直接使用maven而不是IDE插件,因为它增加了一层额外的复杂性。
至于错误,你把你需要的罐子放在你的类路径上吗? 如果您使用库中的类型,则还需要在运行时访问它。 这与maven本身无关。
我不明白你为什么要把库设置为源代码控制 - 它是源代码而不是二进制罐。
您可以创建一个In Project Repository,因此每次在新计算机上工作时都不必run mvn install:install-file
<repository>
<id>in-project</id>
<name>In Project Repo</name>
<url>file://${project.basedir}/libs</url>
</repository>
<dependency>
<groupId>dropbox</groupId>
<artifactId>dropbox-sdk</artifactId>
<version>1.3.1</version>
</dependency>
/groupId/artifactId/version/artifactId-verion.jar
详细阅读这篇博文
http://charlie.cu.cc/2012/06/how-add-external-libraries-maven/
Maven手册说要这样做:
mvn install:install-file -Dfile=non-maven-proj.jar -DgroupId=some.group -DartifactId=non-maven-proj -Dversion=1 -Dpackaging=jar
链接地址: http://www.djcxy.com/p/29689.html
上一篇: Maven: best way of linking custom external JAR to my project?
下一篇: Maven: How to include jars, which are not available in reps into a J2EE project?