2011-01-12 95 views
11

我試圖使用maven網站插件創建一個基本的maven網站。所以我說這我POM:Maven網站(Maven 3)生成空的網站文件夾

<reporting> 
    <plugins> 
     <!--JavaDoc setup--> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.7</version> 
      <configuration> 
       <defaultAuthor>Leon Blakey</defaultAuthor> 
       <defaultVersion>${project.version}</defaultVersion> 
       <links> 
        <link>http://download.oracle.com/javase/6/docs/api</link> 
       </links> 
      </configuration> 
     </plugin> 
    </plugins> 
</reporting> 

奔着mvn site --errors

[INFO] Error stacktraces are turned on. 
[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building pircbotx 1.3-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-site-plugin:2.0.1:site (default-site) @ pircbotx --- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2.688s 
[INFO] Finished at: Wed Jan 12 18:08:00 EST 2011 
[INFO] Final Memory: 5M/13M 
[INFO] ------------------------------------------------------------------------ 
W:\programming\pircbot-hg> 

嗯,奇怪的是,沒有輸出。所以當我檢查目標/網站時,它是空的。唯一的文件夾是images /,css /和WEB-INF /,裏面填充了一些通用圖片。沒有javadoc,也沒有網站。

這是可重複使用mvn site:sitemvn org.apache.maven.plugins:maven-site-plugin:2.2:site(Maven的顯然只是想默認使用2.0.1)

請告訴我奇怪的是,我可以回去到Maven 2.2.1,併成功地生成一個網站。但是當我使用3.0.1-RC1(碰巧與Netbeans一起)時,它失敗了。

我在做什麼錯誤,會使網站插件在3.0.1而不是2.2.1失敗?

+0

不是說這對你有幫助,但是我對3.0有同樣的問題,並認爲它是一個maven bug。我從來沒有得到過這個網站。 – digitaljoel

+2

檢查https://cwiki.apache.org/MAVEN/maven-3x-and-site-plugin.html看看是否有幫助 – Raghuram

+0

@Raghuram這些天我認爲你提供的有關Maven 3和網站插件的鏈接是在這個頁面上詳細說明:http://maven.apache.org/plugins/maven-site-plugin/maven-3.html – Crowie

回答

12

也許你可以嘗試使用Maven Site Plugin 3.x。你可以通過在你的pom.xml中加入以下內容來實現:

<build> 
    ... 
    <plugins> 
     ... 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-site-plugin</artifactId> 
      <version>3.0-beta-3</version> 
     </plugin> 
    </plugins> 
</build> 
+0

是的,使用3.0-beta-3插件肯定會導致maven實際工作,但它讓我感到厭煩使用帶-β的插件版本。 – Jesse

+0

如果我使用Maven 2,會破壞嗎?我在2.2.1和3.0.1之間遷移 – TheLQ

+1

@TheLQ。是。這個版本的插件需要maven 3 – Raghuram

8

我遇到了同樣的問題。我發現了關於這個話題的blog post

引述博客(重點煤礦):

如果你已經使用pom.xml文件的報告部分來生成代碼的質量指標,javadoc的報告,等等,你可以有一點點要將這個特性遷移到Maven 3中。事實上,報告和reportSets部分已被棄用(它不會導致Maven 3錯誤,它將被忽略),並且已被reportPlugins部分所取代在maven-site-plugin本身的配置塊中。

忽略老<reporting>沒有關於它被廢棄的任何警告似乎有點粗魯,但無論如何...

所以你基本上只是移動您的舊報告的插件到新的配置部分Maven的網站插件。

一個section of the maven-plugin-site解釋他們removed of all reporting logic from the core of Maven「從Doxia分離Maven的核心,並允許開發任意報告系統。」說得通。

+0

是的,這就是爲什麼一切都破裂,爲什麼需要網站3 – TheLQ

7

使用網站插件(http://maven.apache.org/plugins/maven-site-plugin/)和Maven 3似乎終於解決了。 (非測試版)版本已發佈,並且已在pom.xml聲明中添加了使用版本2風格<reporting>結構的功能。

雖然(像往常一樣)很難瀏覽關於Maven 3和網站插件的大量但沒有組織和重疊的文檔,但是一個頁面 - http://maven.apache.org/plugins/maven-site-plugin/maven-3.html - 指出舊式樣現在推薦通過新的「插件到網站插件「樣式:

注:在Maven的3,新格式不支持插件報告配置繼承:看MSITE-484。這種格式在技術上有必要從Maven 3中移除報告邏輯,但是仍然需要將新的繼承機制添加到Maven 3中,以使其與舊格式一樣靈活。所以新格式現在還沒有準備好直接使用。

配置報告的示例頁面http://maven.apache.org/plugins/maven-site-plugin/examples/configuring-reports.html甚至沒有提到「新」格式化方法。

不確定這是否是「最佳實踐」形式,但一個示例pom報告部分適用於我,並帶有一些額外報告,如下所示;根據需要選擇你自己的插件。

... 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-site-plugin</artifactId> 
       <version>3.0</version> 
      </plugin> 
     </plugins> 
    </build> 

    <reporting> 
     <plugins> 

      <!-- Default Site Pages --> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-project-info-reports-plugin</artifactId> 
       <version>2.4</version> 
      </plugin> 

      <!-- Java Documentation --> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-javadoc-plugin</artifactId> 
       <version>2.8</version> 
      </plugin> 

      <!-- Source Code Cross-Reference --> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jxr-plugin</artifactId> 
       <version>2.3</version> 
      </plugin> 
      ... 
     </plugins> 
    </reporting> 

順便說一句,如果您使用M2E插件在Eclipse中編輯您的POM,那麼你可以使用代碼完成的插件版本節給你的當前版本的列表。非常便利。