繁体   English   中英

Maven依赖问题 - 在中央仓库中找不到工件

[英]Maven dependency issue - artifact not found in central repo

我正在尝试从这个站点构建项目http://www.joptimizer.com/usage.html 我下载了源jar文件,将其解压缩并在根文件夹中运行maven package Maven在最后一刻失败说它无法解决依赖问题。

could not find artifact seventytwomiles:architecture-rules:jar:3.0.0-M1 in central repo - repo.maven.apache.org/maven2 .. 

我有一种感觉,我可能需要在pom.xml文件中更改某些内容才能使其工作,但不知道是什么。 谷歌搜索这个缺少的依赖导致我没有。 一般来说,如何知道如何处理此类错误(并请帮助解决此特定情况)。

特别

根据http://www.joptimizer.com/usage.html上的Building说明:

JOptimizer基于maven 3.0构建。 在构建之前,您必须解决(在pom.xml中)对Colt的外部依赖关系以及不在公共存储库中的其他依赖关系。 有关完整治疗,请参阅“依赖关系”报告。 为了便于使用,提供了与这些外部库的边界 (访问“下载”):解压缩文件夹中的边界并运行“maven-install.cmd”(用您自己的shell语言翻译),然后您将获得本地存储库中的工件。

要获取此包,请访问http://sourceforge.net/projects/cvxopt/files/ ,并下载相应版本的joptimizer-3.XX-dependencies.zip。 在您自己的文件夹中解压缩,然后运行mvn install:install-file -DgroupId=seventytwomiles -DartifactId=architecture-rules -Dversion=3.0.0-M1 -Dpackaging=jar -Dfile=architecture-rules-3.0.0-M1.jar -DpomFile=architecture-rules-3.0.0-M1.pom

通常

使用http://mavenrepository.com之类的工具搜索缺少的依赖项的另一个版本,并使用正确的版本更新您的POM。 如果MVNRepository不知道它,您可以自己安装依赖项。 如果您正在与一组开发人员合作,正如Eric Jablow所提到的,像Nexus或Artifactory这样的工件库非常适合共享非公共依赖项。 如果只是你,你可以在本地仓库中安装工件,如下所述: 如何在Maven 2中手动安装工件?

您应该添加自己的存储库管理器,如Nexus或Artifactory。 然后,找出保留这种依赖的位置; 有中央以外的存储库。 如果它保存在另一个存储库中,那么您的存储库镜像也是如此。

否则,Nexus或Artifactory具有手动输入依赖关系的命令。 创建一个名为“第三方”的本地存储库并将其添加到那里。

最后,更改settings.xml文件以将所有内容引用到存储库管理器。

最常见的情况是公司拒绝将其产品许可证保存在中央存储库中。 例如,Microsoft不会通过Central分发其sqljdbc.jar文件。 所以,你需要手动添加它。

如下更改依赖关系

<dependency>
  <groupId>org.architecturerules</groupId>
  <artifactId>architecture-rules</artifactId>
  <version>3.0.0-rc1</version>
  <scope>test</scope>
</dependency>

在pom中添加存储库

  <repositories>
    <repository>
      <id>architecturerules.googlecode.com</id>
      <url>http://architecturerules.googlecode.com/svn/maven2/</url>
    </repository>
 </repositories>

暂无
暂无

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

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