我是Maven的新手,并试图找出如何处理我想要包含在多个Maven管理的项目中的一组二进制库(.jars)的情况。
这些库没有pom.xml文件,并且在任何Maven存储库中都不可用。
我应该如何设置Maven / m2eclipse以将这些库包含在我的其他项目中?我假设我需要设置一些Maven“包装项目”来处理这些问题吗?
答案 0 :(得分:2)
如果你是团队编程,请使用@limc post。
如果它只适合你,有几种方法可以处理它:
有一个maven插件可以将jar添加到本地存储库。
mvn install:install-file -DgroupId=<your_group_name> \
-DartifactId=<your_artifact_name> \
-Dversion=<snapshot> \
-Dfile=<path_to_your_jar_file> \
-Dpackaging=jar \
-DgeneratePom=true
或者您可以将jar文件作为系统依赖项引用,如下所示:
<dependency>
<groupId>com.package</groupId>
<artifactId>id</artifactId>
<version>5.2</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/my.jar</systemPath>
</dependency>
答案 1 :(得分:1)
您需要先将罐子安装到@Will的帖子所示的Maven回购中。请记住,这些罐子只存在于您的Maven仓库中。换句话说,如果您与其他开发人员共享此项目代码,他们必须在他们自己的本地回购中执行相同的操作,否则他们将无法找到罐子。
像这样的团队开发更优雅的解决方案是在某个本地服务器中托管Nexus。 Nexus所做的是它将所有外部存储库组合成一个位置(将其视为代理)。因此,您需要在“托管存储库”下的Nexus中安装该jar(顺便提一下,Nexus中有3种类型的repo)。然后,将所有团队成员的开发配置为从Nexus而不是互联网。这样,当您的团队成员将项目签出到他们的本地工作区时,一切都将是无缝的,他们也将自动获得罐子。您不需要以这种方式在pom.xml中配置外部存储库。 :)