0

我对 maven 有一个问题,它一直在寻找 springsource 存储库,并且在存储库不可用时花费大量时间试图通过:

[WARNING] The repository url 'http://repository.springsource.com/maven/bundles/release' is invalid - Repository 'com.springsource.repository.bundles.release' will be blacklisted.
[WARNING] The repository url 'http://repository.springsource.com/maven/bundles/external' is invalid - Repository 'com.springsource.repository.bundles.external' will be blacklisted.

我的问题是我不明白为什么这些回购被提取为:

  • 我不使用任何弹簧组件
  • 似乎没有从这些存储库中获取任何依赖项(使用 mvn 站点的依赖项列表进行检查)
  • 我的任何文件中都没有声明 repos

我已经尝试将我们的档案库甚至我本地的 ~/.m2/settings.xml 中的存储库列入黑名单,即使存储库站点将它们显示为黑名单,错误也会不断弹出并消耗时间。

我的印象是,这个 repo 是由依赖插件获取的,因为这发生在以下日志消息之后的站点阶段:

[INFO] Generating "Dependencies" report    --- maven-project-info-reports-plugin:2.6

而且我在回购错误之前还有一些以下错误:

...
[ERROR] Artifact: xerces:xml-apis:jar:2.11.0 has no file.
[ERROR] Artifact: xerces:xmlParserAPIs:jar:2.6.2 has no file.
[ERROR] Artifact: xml-apis:xml-apis:jar:1.3.02 has no file.
[ERROR] Artifact: xom:xom:jar:1.0 has no file.
...

任何关于如何找到负责(工件或插件)或摆脱这些错误的想法都受到热烈欢迎。

感谢您提供任何线索

PS:我使用 Maven 3.0.4 和 JDK 1.7.0_04。

4

1 回答 1

1

尝试运行:

mvn help:effective-pom

您至少会看到以下内容:

  <repositories>
    <repository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>central</id>
      <name>Maven Repository Switchboard</name>
      <url>http://repo1.maven.org/maven2</url>
    </repository>
  </repositories>

然后您可能还会看到 springsource 存储库。


您还可以使用maven-enforcer-pluginRequire No Repositories 规则。

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.1.1</version>
    <executions>
      <execution>
        <id>enforce-no-repositories</id>
        <goals>
          <goal>enforce</goal>
        </goals>
        <configuration>
          <rules>
            <requireNoRepositories>
              <message>Best Practice is to never define repositories in pom.xml (use a repository manager instead)</message>
            </requireNoRepositories>
          </rules>
        </configuration>
      </execution>
    </executions>
  </plugin>
</plugins>

<repository/>它会为它找到的任何定义了标签的依赖项吐出消息。

于 2012-11-05T17:46:44.887 回答