繁体   English   中英

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

[英]How to provide artifacts to a maven project if those are not in public repository?

我从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在哪里寻找它们。

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

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

  1. 将您的库下载到本地文件夹(即:Path / to / private / library.jar)
  2. mvn install:安装文件-Dfile = -DgroupId = -DartifactId = -Dversion = -Dpackaging = jar

或者,以更高级的方式,如果您拥有Maven存储库(如Sonatype Nexus),则可以将其部署在存储库中并将其映射到您的项目中。 但是,我认为您需要第一个选择。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM