Ausgangssituation

Wenn man, z.B. in Netbeans, ein Maven Projekt anlegt, bekommt man eine minimale pom.xml erstellt. Diese beinhaltet die Maven-Basisdaten (groupId, artefactId, version) sowie weitere Infos, damit beim Bauen des Projektes ein sinnvolles "Ergebnis", nämlich eine JAR-Datei mit den kompilierten Klassen, herauskommt.

Kleiner Einschub hier: in meinem ersten Artikel JSP Taglib in einem Maven JAR habe ich beschrieben, wie man weitere Dateien - also nicht nur die kompilierten Klassen - in das JAR hineinbekommt.

Zielsetzung

Manchmal möchte man jedoch nicht nur das JAR mit den Klassen herausbekommen, sondern auch ein JAR mit den Sourcen sowie ein weiteres JAR mit dem Javadoc.

Die Lösung

Dies lässt sich recht einfach erreichen - der folgende Block muss in die pom.xml unterhalb des properties-Blocks eingefügt werden.

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
                                

Das Ergebnis

Wenn man nun das Projekt mit Maven bauen lässt, indem man mvn package aufruft, werden drei JAR-Dateien jeweils mit den Klassen, den Sourcecode-Dateien sowie dem Javadoc erstellt.

Soweit dies sinnvoll erscheint, werde ich dies zukünftig bei neuen Projekten berücksichtigen und gegebenenfalls auch bestehende Projekte ergänzen.

Artikel

Allgemeiner Disclaimer

Alle Angaben in diesem Text sind sorgfältig zusammengestellt und für einige Szenarien getestet worden. Trotzdem sind Fehler nicht auszuschliessen. Die Anwendung des Beschriebenen erfolgt deshalb immer auf eigene Gefahr.

Zusatzinfos
Navigation