Skip to content

Commit 0fcfa08

Browse files
committed
Dependency bump, and align POM with other Couchbase projects
Motivation ---------- Support publishing via Maven Central Portal instead of OSSRH Open the door to push button publishing via GHA.
1 parent d1c9e68 commit 0fcfa08

2 files changed

Lines changed: 60 additions & 72 deletions

File tree

.github/workflows/maven.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
distribution: 'temurin'
2929
cache: maven
3030
- name: Build with Maven
31-
run: ./mvnw -B package --file pom.xml
31+
run: ./mvnw package --batch-mode
3232

3333
# Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
3434
- name: Update dependency graph

pom.xml

Lines changed: 59 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,7 @@
1515
<properties>
1616
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1717
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
18-
19-
<!-- Don't sign artifacts unless the 'stage' or 'release' profile is active -->
20-
<gpg.skip>true</gpg.skip>
21-
22-
<!-- When deploying, automatically promote artifacts from staging repository -->
23-
<autoReleaseAfterClose>true</autoReleaseAfterClose>
18+
<maven.compiler.release>8</maven.compiler.release>
2419
</properties>
2520

2621
<licenses>
@@ -45,26 +40,6 @@
4540
</developer>
4641
</developers>
4742

48-
<distributionManagement>
49-
<snapshotRepository>
50-
<id>ossrh</id>
51-
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
52-
</snapshotRepository>
53-
</distributionManagement>
54-
55-
<repositories>
56-
<repository>
57-
<id>snapshots-repo</id>
58-
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
59-
<releases>
60-
<enabled>false</enabled>
61-
</releases>
62-
<snapshots>
63-
<enabled>true</enabled>
64-
</snapshots>
65-
</repository>
66-
</repositories>
67-
6843
<dependencies>
6944
<dependency>
7045
<groupId>org.jspecify</groupId>
@@ -74,26 +49,33 @@
7449
<dependency>
7550
<groupId>com.fasterxml.jackson.core</groupId>
7651
<artifactId>jackson-core</artifactId>
77-
<version>2.18.3</version>
52+
<version>2.19.0</version>
7853
</dependency>
7954

8055
<dependency>
8156
<groupId>org.junit.jupiter</groupId>
8257
<artifactId>junit-jupiter</artifactId>
83-
<version>5.12.1</version>
58+
<version>5.13.0</version>
8459
<scope>test</scope>
8560
</dependency>
8661
</dependencies>
8762

8863
<build>
64+
<pluginManagement>
65+
<plugins>
66+
<plugin>
67+
<groupId>org.apache.maven.plugins</groupId>
68+
<artifactId>maven-enforcer-plugin</artifactId>
69+
<version>3.5.0</version>
70+
</plugin>
71+
</plugins>
72+
</pluginManagement>
73+
8974
<plugins>
9075
<plugin>
9176
<groupId>org.apache.maven.plugins</groupId>
9277
<artifactId>maven-compiler-plugin</artifactId>
9378
<version>3.14.0</version>
94-
<configuration>
95-
<release>8</release>
96-
</configuration>
9779
</plugin>
9880
<plugin>
9981
<groupId>org.apache.maven.plugins</groupId>
@@ -152,29 +134,21 @@
152134
<executions>
153135
<execution>
154136
<id>sign-artifacts</id>
155-
<phase>verify</phase>
137+
<phase>deploy</phase>
156138
<goals>
157139
<goal>sign</goal>
158140
</goals>
159-
<configuration>
160-
<gpgArguments>
161-
<!-- Bypass gpg agent -->
162-
<arg>--pinentry-mode</arg>
163-
<arg>loopback</arg>
164-
</gpgArguments>
165-
</configuration>
166141
</execution>
167142
</executions>
168143
</plugin>
169144
<plugin>
170-
<groupId>org.sonatype.plugins</groupId>
171-
<artifactId>nexus-staging-maven-plugin</artifactId>
172-
<version>1.7.0</version>
145+
<groupId>org.sonatype.central</groupId>
146+
<artifactId>central-publishing-maven-plugin</artifactId>
147+
<version>0.7.0</version>
173148
<extensions>true</extensions>
174149
<configuration>
175-
<serverId>ossrh</serverId>
176-
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
177-
<autoReleaseAfterClose>${autoReleaseAfterClose}</autoReleaseAfterClose>
150+
<autoPublish>true</autoPublish>
151+
<waitUntil>published</waitUntil>
178152
</configuration>
179153
</plugin>
180154
<plugin>
@@ -204,40 +178,55 @@
204178
</execution>
205179
</executions>
206180
</plugin>
181+
<!-- Require profile `snapshot` or `release` when deploying.
182+
Having explicit profiles (instead of relying on deploy plugin's
183+
automatic snapshot/release routing) prevents the "on push"
184+
snapshot publish action from accidentally publishing a release version. -->
185+
<plugin>
186+
<groupId>org.apache.maven.plugins</groupId>
187+
<artifactId>maven-enforcer-plugin</artifactId>
188+
<executions>
189+
<execution>
190+
<id>enforce-deploy-has-active-profile</id>
191+
<phase>deploy</phase>
192+
<goals>
193+
<goal>enforce</goal>
194+
</goals>
195+
<configuration>
196+
<rules>
197+
<requireProfileIdsExist/>
198+
<requireActiveProfile>
199+
<profiles>snapshot,release</profiles>
200+
<all>false</all>
201+
</requireActiveProfile>
202+
</rules>
203+
<fail>true</fail>
204+
</configuration>
205+
</execution>
206+
</executions>
207+
</plugin>
207208
</plugins>
208209
</build>
209210

210211
<profiles>
211212
<profile>
212-
<id>release</id>
213-
<activation>
214-
<property>
215-
<name>release</name>
216-
</property>
217-
</activation>
218-
<properties>
219-
<gpg.skip>false</gpg.skip>
220-
</properties>
213+
<id>snapshot</id>
221214
<build>
222215
<plugins>
223216
<plugin>
224217
<groupId>org.apache.maven.plugins</groupId>
225218
<artifactId>maven-enforcer-plugin</artifactId>
226-
<version>3.5.0</version>
227219
<executions>
228220
<execution>
229-
<id>enforce-release</id>
221+
<id>enforce-snapshot</id>
230222
<goals>
231223
<goal>enforce</goal>
232224
</goals>
233225
<configuration>
234226
<rules>
235-
<requireReleaseVersion>
236-
<message>Not a release version (remove -SNAPSHOT suffix!)</message>
237-
</requireReleaseVersion>
238-
<requireReleaseDeps>
239-
<message>Can't release with snapshot dependencies!</message>
240-
</requireReleaseDeps>
227+
<requireSnapshotVersion>
228+
<message>Not a SNAPSHOT version!</message>
229+
</requireSnapshotVersion>
241230
</rules>
242231
<fail>true</fail>
243232
</configuration>
@@ -248,27 +237,26 @@
248237
</build>
249238
</profile>
250239
<profile>
251-
<id>snapshot</id>
252-
<properties>
253-
<gpg.skip>false</gpg.skip>
254-
</properties>
240+
<id>release</id>
255241
<build>
256242
<plugins>
257243
<plugin>
258244
<groupId>org.apache.maven.plugins</groupId>
259245
<artifactId>maven-enforcer-plugin</artifactId>
260-
<version>3.5.0</version>
261246
<executions>
262247
<execution>
263-
<id>enforce-no-releases</id>
248+
<id>enforce-release</id>
264249
<goals>
265250
<goal>enforce</goal>
266251
</goals>
267252
<configuration>
268253
<rules>
269-
<requireSnapshotVersion>
270-
<message>Not a snapshot version</message>
271-
</requireSnapshotVersion>
254+
<requireReleaseVersion>
255+
<message>Not a release version (remove -SNAPSHOT suffix!)</message>
256+
</requireReleaseVersion>
257+
<requireReleaseDeps>
258+
<message>Can't release with snapshot dependencies!</message>
259+
</requireReleaseDeps>
272260
</rules>
273261
<fail>true</fail>
274262
</configuration>

0 commit comments

Comments
 (0)