3

我正在尝试从该站点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 文件中的某些内容才能使其正常工作,但不知道是什么。谷歌搜索这个缺失的依赖让我无处可去。一般来说,如何知道如何处理此类错误(也请帮助处理这种特定情况)。

4

3 回答 3

7

具体来说

根据http://www.joptimizer.com/usage.htmlBuilding上的注释:

JOptimizer 基于 maven 3.0 构建。在构建它之前,您必须解决(在 pom.xml 中)对 Colt 的外部依赖以及不在公共存储库中的其他依赖。请参阅“依赖关系”报告以获得完整的处理。为了便于使用,提供了带有这些外部库的 boundle(访问“下载”):在文件夹中提取 boundle 并运行“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 中手动安装工件?

于 2013-09-14T01:55:15.667 回答
1

You should add your own repository manager like Nexus or Artifactory. Then, find out where this dependency is kept; there are repositories other than central. If it's kept on another repository, have your repository mirror that too.

Otherwise, Nexus or Artifactory have commands to enter the dependency manually. Create a local repository called "Third-party" and add it there.

Finally, change your settings.xml file to refer everything to your repository manager.

The most common case for this is when a company refuses to license their products to be held at the central repository. For example, Microsoft won't let its sqljdbc.jar file be distributed through Central. So, you need to add it by hand.

于 2013-09-14T01:45:24.690 回答
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>
于 2013-11-10T12:05:01.007 回答