如何获取我拥有的jar文件并将其添加到maven 2中的依赖系统?我将成为这个依赖项的维护者,我的代码需要在类路径中使用这个jar,以便它可以编译。
答案 0 :(得分:139)
您必须分两步完成此操作:
如果您没有内部存储库,并且只是尝试将JAR添加到本地存储库,则可以使用任意groupId / artifactIds按如下方式安装它:
mvn install:install-file -DgroupId=com.stackoverflow... -DartifactId=yourartifactid... -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/jarfile
如果您有内置存储库,也可以将其部署到内部存储库,并希望将其提供给组织中的其他开发人员。我只是使用我的存储库的基于Web的界面来添加工件,但是你应该能够使用mvn deploy:deploy-file ...
完成同样的事情。
然后通过向元素添加以下内容来更新使用JAR的项目的pom.xml中的依赖项:
<dependencies>
...
<dependency>
<groupId>com.stackoverflow...</groupId>
<artifactId>artifactId...</artifactId>
<version>1.0</version>
</dependency>
...
</dependencies>
答案 1 :(得分:93)
您还可以指定不在maven存储库中的依赖项。当您的团队没有中央maven存储库或者您有CI服务器
时,可能会很有用 <dependency>
<groupId>com.stackoverflow</groupId>
<artifactId>commons-utils</artifactId>
<version>1.3</version>
<scope>system</scope>
<systemPath>${basedir}/lib/commons-utils.jar</systemPath>
</dependency>
答案 2 :(得分:45)
实际上,在调查这个问题时,我认为所有这些答案都是错误的。由于我们对maven
的理解程度,您的问题具有误导性。我说我们是因为我刚刚介绍maven
。
在Eclipse
中,当您想要将jar文件添加到项目中时,通常会手动下载jar,然后将其放入 lib 目录中。对于maven,你不这样做。这是你做的:
dependency
声明复制到pom.xml
mvn
现在,maven
将连接并下载jar
以及依赖项列表,并自动解决jar
可能具有的任何其他依赖项。因此,如果jar
也需要公共日志记录,那么也会下载。
答案 3 :(得分:14)
我会这样做:
在你的pom中添加依赖项:
<dependency>
<groupId>com.stackoverflow...</groupId>
<artifactId>artifactId...</artifactId>
<version>1.0</version>
</dependency>
运行mvn install
它会尝试下载jar并失败。在这个过程中,它
将为您提供安装jar的完整命令以及错误消息。复制该命令并运行它!好吧?!
答案 4 :(得分:3)