3

我是 Maven 新手,目前正在使用 Eclipse 的 m2e 插件。

问题一:

在默认中央存储库(右键单击项目:Maven -> 添加依赖项)中搜索工件(atmosphere-runtime)时,将返回结果列表。

但是,在添加依赖项后,我收到以下错误消息:

Missing artifact org.atmosphere:atmosphere-runtime:bundle:1.0.2

如果我在 maven 网站上搜索工件,我可以手动找到并下载 jar(请参见此处)。我已经尝试清理/更新/重新加载项目,更新/重新索引/重新构建中央 maven 存储库并重新启动 Eclipse,但似乎没有任何帮助。

我收到此错误是否有原因?

问题2:

我正在遵循的教程建议将以下存储库添加到 pom 以下载上述工件:

<repositories>
  <repository>
    <id>Sonatype snapshots</id>
    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
  </repository>
  <repository>
    <id>Sonatype releases</id>
    <url>https://oss.sonatype.org/content/repositories/releases</url>
  </repository>
</repositories>

这很有效,如果我在 pom.xml 文件中手动指定依赖项,我就可以下载所需的工件。

但是,如果我尝试使用 eclipse 搜索(右键单击项目:Maven -> 添加依赖项)搜索工件,则不会从两个新存储库返回任何结果。

是否可以在搜索中包含这两个新存储库?

4

2 回答 2

2

对于你的第一个问题。Maven 中央只有一个“jar”,但您似乎需要一个捆绑包。因此,您必须将依赖项更改为“jar”,这意味着像这样定义依赖项:

<dependency>
    <groupId>org.atmosphere</groupId>
    <artifactId>atmosphere-runtime</artifactId>
    <version>1.0.2</version>
</dependency>

代替:

<dependency>
    <groupId>org.atmosphere</groupId>
    <artifactId>atmosphere-runtime</artifactId>
    <version>1.0.2</version>
    <type>bundle</type>
</dependency>

解决第二个问题中问题的最佳方法是使用像 Nexus 这样的存储库管理器并在存储库管理器中定义这两个存储库。https://oss.sonatype.org/content/repositories/snapshots定义了 Maven Central 中工件的快照,而第二个是定期同步到 Maven Central 的存储库。因此,在我看来,您不需要单独使用这两个存储库。如果您想搜索上述两个存储库的内容,您可以使用以下搜索:https ://oss.sonatype.org/在这里您可以访问也可用于搜索的 Nexus 存储库。

于 2012-10-17T21:10:57.000 回答
0

对于您的 2. 问题。Project Repositories在视图中展开Maven Repositories并右键单击添加的存储库并检查Enable Full Index.

对于您的 1. 问题。如果未启用,则启用中央存储库的完整索引,然后尝试Update Index/ Rebuild Index

于 2012-10-17T22:13:39.663 回答