-
Notifications
You must be signed in to change notification settings - Fork 115
Maven
For releases, including milestone and candidate releases, the Maven Central repository is used. There's a common Jenkins job MicroProfile Releases to release any MicroProfile feature.
After a release is uploaded from Jenkins but before a release is published in Maven Central, usually a manual approval is required in Sonatype Nexus. Every committer is eligible to have access to the Sonatype Nexus with permission for the org.eclipse.microprofile artifact group prefix. If you are a committer and don't have access, do the following steps:
1. Register yourself in the public Sonatype Jira to get an account for both Sonatype Jira and Nexus
2. Create an issue to request access to the org.eclipse.microprofile artifact group prefix and mention that you're a committer to the MicroProfile project. As a reference, here's the original Jira for the group prefix. Link your new Jira issue to the original for reference.
For projects using the new release process, you should release against Sonatype. Inheriting from the microprofile-parent will set this up for you, as long as you don't declare a repository section. Otherwise, the repository looks like:
<distributionManagement>
<repository>
<id>ossrh</id>
<name>Sonatype OSSRH - Release Staging Area</name>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
<snapshotRepository>
<id>ossrh</id>
<name>Sonatype OSSRH Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<uniqueVersion>true</uniqueVersion>
</snapshotRepository>
</distributionManagement>
The Jenkins server is setup to be able to push to this repository. A committer would still need to login to Sonatype OSS to release the repository when its ready to be released.
The following release profile should be present in all poms to be released via Jenkins
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.3</version>
<extensions>true</extensions>
<configuration>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<serverId>ossrh</serverId>
<autoReleaseAfterClose>false</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</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>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
For all builds, the Sonatype OSS snapshot repository is used.
Category:MicroProfile