Maven / Eclipse中的二进制库依赖项

时间:2011-02-11 00:27:54

标签: java eclipse maven m2eclipse

我是Maven的新手,并试图找出如何处理我想要包含在多个Maven管理的项目中的一组二进制库(.jars)的情况。

这些库没有pom.xml文件,并且在任何Maven存储库中都不可用。

我应该如何设置Maven / m2eclipse以将这些库包含在我的其他项目中?我假设我需要设置一些Maven“包装项目”来处理这些问题吗?

2 个答案:

答案 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中配置外部存储库。 :)