如果maven项目不在公共存储库中,如何为maven项目提供工件?

时间:2013-03-28 18:39:50

标签: java maven jar

我从Github克隆了一个开源库项目,我想用于我自己的Java项目。该库依赖于在任何公共存储库中都找不到的其他一些jar。这会导致mvn package失败:

[ERROR] Failed to execute goal on project commons-gdx-core: 
Could not resolve dependencies for project 
com.gemserk.commons.gdx:commons-gdx-core:jar:0.0.11-SNAPSHOT: 
The following artifacts could not be resolved: 
com.badlogic.gdx:gdx:jar:0.9.8-SNAPSHOT, 
com.gemserk.animation4j:animation4j-core:jar:0.2.2-SNAPSHOT,
com.gemserk.vecmath:vecmath:jar:1.5.3-GEMSERK: 
Could not find artifact com.badlogic.gdx:gdx:jar:0.9.8-SNAPSHOT -> [Help 1]

我想我可以从其他来源获得这些罐子,但我不知道如何告诉maven在哪里寻找它们。

3 个答案:

答案 0 :(得分:2)

使用存储库和存储库标记指向pom文件中的私有存储库,或以相同的方式更新settings.xml。一旦你告诉它看哪里,Maven就会下载这些文物。

答案 1 :(得分:2)

例如,我们有Oracle JDBC驱动程序。您必须将其安装到本地maven存储库中。

  1. 将您的lib下载到本地文件夹(即:Path / to / private / library.jar)
  2. mvn install:install-file -Dfile = -DgroupId = -DartifactId = -Dversion = -Dpackaging = jar
  3. 或者,更高级的方法,如果您有Maven存储库(如Sonatype Nexus),您可以将其部署在存储库中并将其映射到您的项目中。但是,我认为你需要第一个选择。

答案 2 :(得分:1)

来自apast和Chris的答案都是正确的。但是,如果您更改计算机或清理本地存储库,则仍无法编译项目。我建议使用系统依赖项并在git版本控制下添加jar。 Here's一个例子。