1 | * ABCL Release Engineering practices |
---|
2 | |
---|
3 | ** Maven |
---|
4 | |
---|
5 | Instructions for Releasing ABCL on Sonatype's OSS Maven repository |
---|
6 | |
---|
7 | *** settings.xml |
---|
8 | |
---|
9 | This assumes your settings.xml (/etc/maven2/settings.xml for |
---|
10 | Ubuntu-packaged Maven) contains something like this in its |
---|
11 | <servers></servers> section: |
---|
12 | |
---|
13 | #+BEGIN_SRC |
---|
14 | <server> |
---|
15 | <id>sonatype-nexus-snapshots</id> |
---|
16 | <username>sonatype-jira-username</username> |
---|
17 | <password>sonatype-jira-password</password> |
---|
18 | </server> |
---|
19 | <server> |
---|
20 | <id>sonatype-nexus-staging</id> |
---|
21 | <username>sonatype-jira-username</username> |
---|
22 | <password>sonatype-jira-password</password> |
---|
23 | </server> |
---|
24 | #+END_SRC |
---|
25 | |
---|
26 | *** Process |
---|
27 | |
---|
28 | First, remember to build it! |
---|
29 | |
---|
30 | #+BEGIN_SRC |
---|
31 | ant abcl.jar abcl.source.jar abcl.javadoc.jar abcl.contrib |
---|
32 | #+END_SRC |
---|
33 | |
---|
34 | And maybe test it as well |
---|
35 | |
---|
36 | #+BEGIN_SRC |
---|
37 | ant abcl.test |
---|
38 | #+END_SRC |
---|
39 | |
---|
40 | For snapshots - development versions - the version in the POM should be like x.y.z-SNAPSHOT |
---|
41 | |
---|
42 | #+BEGIN_SRC |
---|
43 | mvn gpg:sign-and-deploy-file -Dfile=dist/abcl.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots |
---|
44 | mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-sources.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots -Dclassifier=sources |
---|
45 | mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-javadoc.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots -Dclassifier=javadoc |
---|
46 | mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/content/repositories/snapshots/ -DrepositoryId=sonatype-nexus-snapshots |
---|
47 | #+END_SRC |
---|
48 | |
---|
49 | For releases - the version in the POM should be x.y.z |
---|
50 | |
---|
51 | #+BEGIN_SRC |
---|
52 | mvn gpg:sign-and-deploy-file -Dfile=dist/abcl.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging |
---|
53 | mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-${abcl_version}-sources.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=sources |
---|
54 | mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-${abcl_version}-javadoc.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=javadoc |
---|
55 | #+END_SRC |
---|
56 | |
---|
57 | abcl-contrib release |
---|
58 | |
---|
59 | #+BEGIN_SRC |
---|
60 | mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging |
---|
61 | mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib-${abcl_version}-sources.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=sources |
---|
62 | mvn gpg:sign-and-deploy-file -Dfile=dist/abcl-contrib-${abcl_version}-javadoc.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=javadoc |
---|
63 | #+END_SRC |
---|
64 | |
---|
65 | **** Testing downloads |
---|
66 | |
---|
67 | #+BEGIN_SRC |
---|
68 | mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl=https://oss.sonatype.org/content/repositories/snapshots -Dartifact=org.abcl:abcl-contrib:1.5.0-SNAPSHOT:jar |
---|
69 | #+END_SRC |
---|
70 | |
---|
71 | *** See also |
---|
72 | <http://www.sonatype.org/nexus/2015/06/02/how-to-publish-software-artifacts-to-maven-central/> |
---|
73 | <http://central.sonatype.org/pages/releasing-the-deployment.html> |
---|
74 | |
---|
75 | *** Specifiying GPG executable |
---|
76 | |
---|
77 | For specifying gpg executable, use a property specified via |
---|
78 | '-Dgpg.executable=gpg2'. |
---|