我对 Maven 还很陌生,在使用我编写并发布在公司内部(archiva)存储库上的插件时遇到了一些麻烦。
正如我所见,插件的构建和发布似乎在存储库的 URL 上有效:
- repo 目录已创建
- 该目录包含:
- pom、pom.sh1、pom.md5 文件
- jar、jar.sh1、jar.md5 文件
在我的插件的 pom.xml 文件中,我引用了我们内部存储库的 url:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myorg</groupId>
<artifactId>myorg-build-info-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0.0</version>
<name>myorg-build-info-plugin Maven Mojo</name>
<url>labserver.myorg-domain.com:8380/archiva/repository/internal</url>
....
十我在另一个 pom.xml 中引用了这个插件:
<plugin>
<groupId>com.morg</groupId>
<artifactId>myorg-build-info-plugin</artifactId>
<version>1.0.0</version>
...
我确实在同一个 pom.xml 中提供了内部存储库:
<repositories>
<repository>
<id>myorg-repo</id>
<name>Repository for Myorg Artifacts</name>
<url>http://labserver.myorg-domain.com:8380/archiva/repository/internal</url>
<layout>default</layout>
</repository>
最后,如果我对该 pom 文件执行 Maven clean 操作(执行 mvn clean -e ),我收到以下错误:
+ Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building com.myorg.projectname
[INFO] task-segment: [clean]
[INFO] ------------------------------------------------------------------------
Downloading: http://repo1.maven.org/maven2/com/myorg/myorg-build-info-plugin/1.0.0/myorg-build-info-plugin-1.0.0.pom
[INFO] Unable to find resource 'com.myorg:myorg-build-info-plugin:pom:1.0.0' in repository central (http://repo1.maven.org/maven2)
Downloading: http://labserver.myorg-domain.com:8380/archiva/repository/internal/com/myorg/myorg-build-info-plugin/1.0.0/myorg-build-info-plugin-1.0.0.pom
1K downloaded (myorg-build-info-plugin-1.0.0.pom)
Downloading: http://repo1.maven.org/maven2/com/myorg/myorg-build-info-plugin/1.0.0/myorg-build-info-plugin-1.0.0.jar
[INFO] Unable to find resource 'com.myorg:myorg-build-info-plugin:maven-plugin:1.0.0' in repository central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] A required plugin was not found: Plugin could not be found - check that the goal name is correct: Unable to download the artifact from any repository
Try downloading the file manually from the project website.
Then, install it using the command:
...
现在从我所看到的:
- 从我们的内部存储库正确获取 pom 文件
- jar 文件获取失败,因为它试图从 http://repo1.maven.org/maven2 获取它。
我希望扫描所有存储库,尤其是文件中声明的内部存储库。
显然事实并非如此。
因此,如果有人知道为什么会发生这种情况,我将非常感谢您的帮助!
TIA,
PS:我使用 Maven 2.2.1 for debian 和 JDK 1.6.029
最佳答案
我建议的第一件事是使用像 Archiva 这样的存储库管理器, Artifctory或Nexus此外,我建议阅读以下文章:http://www.sonatype.com/people/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/ 。 除了前面的之外,您还需要定义一个pluginRepository区域,如下所示:
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo1.maven.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
关于maven-2 - maven-plugin : maven downloads only pom, 不是来自内部存储库的 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10581866/