当我尝试构建网站时,我目前面临与Maven 3的以下问题。我将非常感谢你的帮助。
mvn clean site
..........
[INFO] Reactor Summary:
[INFO]
[INFO] Project A ......................................... SUCCESS [15.383s]
[INFO] Project B ......................................... SUCCESS [2.232s]
[INFO] My Site ........................................... FAILURE [0.105s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 24.769s
[INFO] Finished at: Fri Jun 29 14:26:04 AMT 2012
[INFO] Final Memory: 18M/150M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.1:site (default-site) on project site: SiteToolException: Unable to read local module-POM: 1 problem was encountered while building the effective model for my.com:projA:0.1-SNAPSHOT
[ERROR] [FATAL] Non-resolvable parent POM: Could not find artifact my.com:parent-pom:pom:0.1-SNAPSHOT and 'parent.relativePath' points at no local POM @ line 12, column 13
[ERROR] for project my.com:projA:0.1-SNAPSHOT
.............
首先是配置:
Apache Maven 3.0.4 (r1232337; 2012-01-17 12:44:56+0400)
Java version: 1.7.0_04, vendor: Oracle Corporation
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.7.4", arch: "x86_64", family: "mac"
Nexus repository: 2.0.6
父POM:
<modelVersion>4.0.0</modelVersion>
<name>Parent POM</name>
<groupId>my.com</groupId>
<artifactId>parent-pom</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.1</version>
<configuration>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.4</version>
</plugin>
</reportPlugins>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
聚合项目pom:
<modelVersion>4.0.0</modelVersion>
<name>My Site</name>
<groupId>my.com</groupId>
<artifactId>site</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>my.com</groupId>
<artifactId>parent-pom</artifactId>
<version>0.1-SNAPSHOT</version>
<relativePath/>
</parent>
<modules>
<module>projA</module>
<module>projB</module>
</modules>
项目A的pom:
<modelVersion>4.0.0</modelVersion>
<name>Project A</name>
<groupId>my.com</groupId>
<artifactId>projA</artifactId>
<version>0.1-SNAPSHOT</version>
<parent>
<groupId>my.com</groupId>
<artifactId>parent-pom</artifactId>
<version>0.1-SNAPSHOT</version>
<relativePath/>
</parent>
项目B的pom:
4.0.0
<name>Project B</name>
<groupId>my.com</groupId>
<artifactId>projB</artifactId>
<version>0.1-SNAPSHOT</version>
<parent>
<groupId>my.com</groupId>
<artifactId>parent-pom</artifactId>
<version>0.1-SNAPSHOT</version>
<relativePath/>
</parent>
以下是我运行“mvn clean site”的文件夹的结构:
./pom.xml (aggregation project)
./projA/pom.xml (Project A)
./projB/pom.xml (Project B)
在使用以下命令mvn clean site
执行mvn deploy -DaltDeploymentRepository=snapshots::default::http://MyServer:8081/nexus/content/repositories/snapshots
之前,parent-pom已成功部署到NEXUS存储库
最后问题本身:
在成功构建父pom网站部署后立即运行mvn clean site
。如果我从本地存储库(〜/ .m2 / repository)删除文件夹(及其内容)“my”(它包含parent-pom),然后尝试使用mvn clean site
构建网站我得到了开头描述的错误。实际上Maven从NEXUS下载了父pom。我已经比较了部署后生成的下载文件和文件,并发现很少有文件丢失,例如maven-metadata-local.xml靠近“0.1-SNAPSHOT”文件夹。
因此,当我尝试从Jenkins运行网站构建作业时,我收到上述错误,因为没有从Jenkins运行的机器部署父pom。
我怎么能想出这个问题或我做错了什么?
谢谢。
答案 0 :(得分:4)
正如this answer所指出的那样,网站插件中只有a bug,它只会查找它认为是Maven中心的依赖关系。
我在Maven 3.0.4和site-plugin 3.3中遇到了同样的问题。我还有一个问题,它在我的运行Windows 7的开发机器上运行,但在Debian上运行Jenkins的CI-Server中没有。
答案 1 :(得分:3)
问题不在你的pom文件中。当我构建你的聚合pom时,Maven通常从远程仓库下载了父pom(在我从我的本地仓库中删除之后)。
试试这个:
mvn -U clean install site dependency:purge-local-repository
此外,你可以做一些清理:
<relativePath/>
<version>0.1-SNAPSHOT</version>
和<groupId>my.com</groupId>
(它们是从父级继承的)答案 2 :(得分:1)
我遇到了同样的问题...在我的开发人员MacBook上工作,但在使用mvn site
运行maven-site-plugin:3.7
时,在我的Jenkins上运行RHEL7失败了。我没有测试降级网站插件。
我找到了另一个解决方案。我的问题是maven-project-info-reports-plugin
,尤其是目标dependencies
。如果我跳过目标-Dmpir.skip=true
我的网站已生成(没有依赖项:(报告)。