我正在尝试从此网站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文件中更改某些内容才能使用,但不知道是什么。谷歌搜索这个缺少的依赖导致我没有。一般来说,如何知道如何处理此类错误(并请帮助解决此特定情况)。
答案 0 :(得分:6)
根据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.X.X-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这样的工件库非常适合共享非公共依赖项。如果只是您,您可以按照此处所述在本地仓库中安装工件:How to manually install an artifact in Maven 2?
答案 1 :(得分:1)
您应该添加自己的存储库管理器,如Nexus或Artifactory。然后,找出保留这种依赖的位置;有中央以外的存储库。如果它保存在另一个存储库中,那么也要使您的存储库镜像。
否则,Nexus或Artifactory具有手动输入依赖关系的命令。创建一个名为“第三方”的本地存储库并将其添加到那里。
最后,更改您的settings.xml
文件以将所有内容引用到您的存储库管理器。
最常见的情况是公司拒绝将其产品许可证保存在中央存储库中。例如,Microsoft不会通过Central分发其sqljdbc.jar
文件。所以,你需要手工添加它。
答案 2 :(得分:0)
按以下方式更改依赖关系
<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>