maven publishing sources and javadocs
This is a really overly simplistic guide to show how to add packaging
up the sources
and javadoc
jars to the mvn package
command.
Starting with with some sort of maven project, if you don’t have one off hand, you can use the “Hello, world” project maven generates with:
mvn archetype:generate \
-DgroupId=com.mycompany.app -DartifactId=my-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
Then cd
into my-app
or whereever your project is and open up the
pom.xml
. There are only two plugins we need to add. It might be
easier to look at a diff of what I added to the default pom.xml
generated by mvn
.
--- pom.xml.original 2015-03-12 11:21:04.502509345 -0700
+++ pom.xml.new 2015-03-12 11:20:44.699176122 -0700
@@ -15,4 +15,32 @@
<scope>test</scope>
</dependency>
</dependencies>
+ <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>
</project>
Now when you run mvn package
, three artifacts get created.
target/my-app-1.0-SNAPSHOT.jar
target/my-app-1.0-SNAPSHOT-javadoc.jar
target/my-app-1.0-SNAPSHOT-sources.jar
All three can now be published to the maven repository (artifactory).