16

現在、サイトを構築しようとしているときに、Maven 3 で次の問題に直面しています。これについて助けていただければ幸いです。

mvn クリーン サイト

..........
[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のポン:

<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のポン:

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次のコマンドを実行する前に、parent-pom が NEXUS リポジトリに正常にデプロイされます。mvn deploy -DaltDeploymentRepository=snapshots::default::http://MyServer:8081/nexus/content/repositories/snapshots

そして最後に問題自体:

mvn clean site親 po サイトの展開が正常に構築された直後に実行すると。ローカル リポジトリ (~/.m2/repository) から "my" (親 pom を含む) フォルダー (コンテンツを含む) を削除し、サイトをビルドしようとするとmvn clean site、最初に説明したエラーが表示されます。 . 実際、Maven は NEXUS から parent-pom をダウンロードします。ダウンロードしたファイルと展開後に生成されたファイルを比較したところ、「0.1-SNAPSHOT」フォルダーの近くにある maven-metadata-local.xml など、不足しているものはほとんどないことがわかりました。

そのため、Jenkins からサイト構築ジョブを実行しようとすると、Jenkins が実行されているマシンから親 pom がデプロイされていないため、上記のエラーが発生します。

どうすればこの問題を思い付くことができますか、または私が間違ったことをしましたか?

ありがとうございました。

4

3 に答える 3

4

この回答で指摘されているように、サイト プラグインにはバグがあり、 Maven の中心と見なされる依存関係のみを検索します。

Maven 3.0.4 と site-plugin 3.3 で同じ問題が発生しています。また、Windows 7 を実行している開発マシンでは機能しますが、Debian で Jenkins を実行している CI サーバーでは機能しないという問題もあります。

于 2013-07-30T12:48:33.023 に答える