2011-01-12 7 views
11

Ich versuche, eine grundlegende Maven-Site mit dem Maven Site-Plugin zu erstellen. So habe ich das meinem pom:Maven-Site (Maven 3) generiert leeren Site-Ordner

<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> 

Und lief 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> 

Hmm, seltsam, dass es keinen Ausgang gibt. Wenn ich das Ziel/die Site überprüfe, ist es leer. Die einzigen Ordner sind images /, css/und WEB-INF /, die mit einigen generischen Bildern gefüllt sind. Kein Javadoc und keine Website. Diese

ist reproduzierbar mit mvn site:site und mvn org.apache.maven.plugins:maven-site-plugin:2.2:site (anscheinend nur maven will 2.0.1 standardmäßig verwendet)

Was seltsam ist, dass ich gehen kann zurück 2.2.1 Maven und erfolgreich eine Website generieren. Aber wenn ich 3.0.1-RC1 benutze (kommt zufällig mit Netbeans), schlägt es fehl.

Was mache ich falsch, dass das Site-Plugin in 3.0.1, aber nicht in 2.2.1 fehlschlagen würde?

+0

Nicht, dass dies Ihnen helfen wird, aber ich hatte das gleiche Problem mit 3.0 und dachte, es war ein Maven Bug. Ich habe nie die Website generiert. – digitaljoel

+2

Überprüfen Sie https://cwiki.apache.org/MAVEN/maven-3x-and-site-plugin.html, um zu sehen, ob das auch hilft – Raghuram

+0

@Raghuram heutzutage denke ich, dass der Link, den Sie über Maven 3 und das site plugin gegeben haben, ist im Detail auf dieser Seite stattdessen: http://maven.apache.org/plugins/maven-site-plugin/maven-3.html – Crowie

Antwort

12

Vielleicht können Sie versuchen, Maven Site Plugin 3.x zu verwenden. Sie können das tun, indem Sie das folgende in Ihrer 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

Ja, mit 3.0-Beta-3-Plugin funktioniert definitiv Maven tatsächlich funktionieren, aber es ärgert mich eine Plugin-Version mit -beta zu benutzen. – Jesse

+0

Wird das brechen, wenn ich Maven 2 benutze? Ich migriere zwischen 2.2.1 und 3.0.1 – TheLQ

+1

@TheLQ. Ja. Diese Version des Plugins benötigt maven 3 – Raghuram

8

hinzufügen Ich hatte das gleiche Problem. Ich habe eine blog post über das Thema gefunden.

Zitiert den Blog (Hervorhebung von mir):

Wenn Sie den Berichtsabschnitt der pom.xml-Datei verwendet haben, um Code-Qualitätsmetriken, javadoc Berichte zu generieren und so weiter, können Sie ein wenig haben zu tun, um diese Funktion in Maven 3 zu migrieren. In der Tat, die Berichterstattung und reportSets Abschnitte wurden veraltet (wird es keinen Fehler mit Maven 3, wird nur ignoriert werden), und wurden durch eine reportPlugins Abschnitt ersetzt im Konfigurationsblock des maven-site-plugins selbst.

Ignorieren der alten <reporting> ohne Vorwarnung über sie veraltet ist, scheint ein bisschen unhöflich, aber trotzdem ...

Sie sind also im Grunde bewegt nur den alten Reporting Plugins in den Konfigurationsabschnitt des neuen Maven-Site-Plugin.

A section of the maven-plugin-site erklärt, dass sie removed of all reporting logic from the core of Maven auf „den Kern von doxia Maven zu entkoppeln und beliebige Berichtssysteme zu ermöglichen, entwickelt werden.“ Macht Sinn.

+0

Ja, deshalb ist alles kaputt gegangen und warum Site 3 benötigt wird – TheLQ

7

Die Verwendung des Site-Plugins (http://maven.apache.org/plugins/maven-site-plugin/) mit Maven 3 scheint endlich gelöst zu sein. Die (Nicht-Beta) Version wurde veröffentlicht und die Möglichkeit, die <reporting> Struktur der Version 2 in der Deklaration pom.xml zu verwenden, wurde hinzugefügt.

Obwohl es (wie üblich) schwierig ist, die umfangreiche, aber unorganisierte und überlappende Dokumentation über Maven 3 und das Site-Plugin zu navigieren, gibt eine Seite - http://maven.apache.org/plugins/maven-site-plugin/maven-3.html - an, dass der alte Stil nun über das neue "Plugin zu Site-Plugin" empfohlen wird "style:

Hinweis: In Maven 3, wird das neue Format nicht Bericht Plugins Konfigurationsvererbung: siehe MSITE-484. Dieses Format war technisch notwendig, um die Berichtslogik von Maven 3 zu entfernen, aber Maven 3 muss noch ein neuer Vererbungsmechanismus hinzugefügt werden, um es so flexibel wie das alte Format zu machen. Das neue Format ist also noch nicht für den direkten Gebrauch bereit.

Die Beispielseite http://maven.apache.org/plugins/maven-site-plugin/examples/configuring-reports.html zum Konfigurieren von Berichten erwähnt nicht einmal die "neue" Formatierungsmethode.

Nicht sicher, ob dies in einer "Best Practice" -Form ist, aber ein Beispiel Pom Berichterstattung Abschnitt, der für mich mit ein paar zusätzliche Berichte funktioniert, ist wie folgt; Wählen Sie Ihre eigenen Plugins nach Wunsch.

... 
    <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> 

Als Nebenwirkung Wenn Sie das M2e-Plugin in Eclipse verwenden, um Ihre POMs zu bearbeiten, dann können Sie die Code-Vervollständigung in der Version Abschnitt eines Plugins verwenden Sie eine Liste der aktuellen Versionen zu geben. Sehr praktisch.