Maven 2 Maven,如何添加回购中不可用的附加LIB

Maven 2 Maven,如何添加回购中不可用的附加LIB,maven-2,pom.xml,Maven 2,Pom.xml,我有一个maven项目,它有一组库依赖项,这些依赖项在任何maven存储库中都不可用。如何将这些库添加到pom中?我希望在运行“mvn eclipse:eclipse”时这样做,因为它不会从eclipse类路径中删除这些库。您不能“将它们添加到pom”。你必须把它们放在回购协议中。按照错误消息的建议,您可以使用maven安装插件将它们放在本地repo中。或者,您可以将它们部署在Nexus的本地副本或类似副本中。您可以将其声明为具有system作用域的依赖项 <project> ...

我有一个maven项目,它有一组库依赖项,这些依赖项在任何maven存储库中都不可用。如何将这些库添加到pom中?我希望在运行“mvn eclipse:eclipse”时这样做,因为它不会从eclipse类路径中删除这些库。

您不能“将它们添加到pom”。你必须把它们放在回购协议中。按照错误消息的建议,您可以使用maven安装插件将它们放在本地repo中。或者,您可以将它们部署在Nexus的本地副本或类似副本中。

您可以将其声明为具有
system
作用域的依赖项

<project>
...
 <dependencies>
   <dependency>
     <groupId>sun.jdk</groupId>
     <artifactId>tools</artifactId>
     <version>1.5.0</version>
     <scope>system</scope>
     <systemPath>${java.home}/../lib/tools.jar</systemPath>
   </dependency>
 </dependencies>
 ...
</project>

...
sun.jdk
工具
1.5.0
系统
${java.home}/./lib/tools.jar
...
您有3个选项:

  • 通过
    install:install file
    将库添加到本地存储库(显然,这是不可移植的,如果不这样做,您将无法在另一台计算机上构建项目)
  • 安装并运行“企业存储库”,如Nexus、Archiva或Artifactory,并通过
    deploy:deploy file
    添加库
  • 按照本文所述设置基于文件的存储库,并将库放在其中

然后,像其他依赖项一样在pom中声明库。

您可以将它们包含在项目的子目录(可能是lib/)中。您还可以提供.bat和/或.sh文件,其中包含每个项目成员(或服务器环境)将这些JAR添加到本地repo所需的对maven安装插件的所有适当调用


这种方法允许新项目成员快速启动和运行,而无需花费数小时为您的项目或团队建立新的公共回购。

最近,我创建了一个小型UI Util,用于将库安装到本地存储库中。 它的工作方式与
安装:安装文件
相同


完全不推荐!这是一个黑客攻击,系统范围不适用于此用途,这是缺点/副作用。我不同意你的看法。问题没有具体说明任何有关预期用途的内容。他需要添加它,以便eclipse不会将其从类路径中删除。对于任何以后可能使用汇编插件之类的东西的严肃项目,您不希望使用系统范围。这只是一个不好的做法,我不建议这样做。请包含一些关于如何工作的代码,而不仅仅是一个链接。不需要代码,因为它是一个小型可运行的UI应用程序。下载链接为: