Skip to content

Commit 6b026f7

Browse files
dfa1claude
andcommitted
build: add Maven Central metadata and release profile
Add name/description/url, licenses (Apache 2.0), developers, scm to root pom. Add release profile with source, javadoc, GPG signing, and central-publishing-maven-plugin (Sonatype Central Portal). Skip deploy for cli/integration/performance modules. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent c1d77d5 commit 6b026f7

4 files changed

Lines changed: 128 additions & 0 deletions

File tree

cli/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111

1212
<artifactId>cli</artifactId>
1313

14+
<properties>
15+
<maven.deploy.skip>true</maven.deploy.skip>
16+
</properties>
17+
1418
<dependencies>
1519
<dependency>
1620
<groupId>io.github.dfa1.vortex</groupId>

integration/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111

1212
<artifactId>integration</artifactId>
1313

14+
<properties>
15+
<maven.deploy.skip>true</maven.deploy.skip>
16+
</properties>
17+
1418
<dependencies>
1519
<dependency>
1620
<groupId>io.github.dfa1.vortex</groupId>

performance/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111

1212
<artifactId>performance</artifactId>
1313

14+
<properties>
15+
<maven.deploy.skip>true</maven.deploy.skip>
16+
</properties>
17+
1418
<dependencies>
1519
<dependency>
1620
<groupId>io.github.dfa1.vortex</groupId>

pom.xml

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,34 @@
99
<version>0.1.0-SNAPSHOT</version>
1010
<packaging>pom</packaging>
1111

12+
<name>vortex-java</name>
13+
<description>Pure-Java reader/writer for the Vortex columnar file format. Zero-copy memory-mapped reads via the Java FFM API (Java 25+), no JNI, no sun.misc.Unsafe.</description>
14+
<url>https://github.com/dfa1/vortex-java</url>
15+
16+
<licenses>
17+
<license>
18+
<name>Apache License, Version 2.0</name>
19+
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
20+
<distribution>repo</distribution>
21+
</license>
22+
</licenses>
23+
24+
<developers>
25+
<developer>
26+
<id>dfa1</id>
27+
<name>Davide Angelocola</name>
28+
<email>davide.angelocola@gmail.com</email>
29+
<url>https://github.com/dfa1</url>
30+
</developer>
31+
</developers>
32+
33+
<scm>
34+
<connection>scm:git:https://github.com/dfa1/vortex-java.git</connection>
35+
<developerConnection>scm:git:git@github.com:dfa1/vortex-java.git</developerConnection>
36+
<url>https://github.com/dfa1/vortex-java</url>
37+
<tag>HEAD</tag>
38+
</scm>
39+
1240
<modules>
1341
<module>core</module>
1442
<module>reader</module>
@@ -38,6 +66,11 @@
3866
<arrow.version>19.0.0</arrow.version>
3967
<slf4j.version>2.0.18</slf4j.version>
4068
<jmh.version>1.37</jmh.version>
69+
<!-- release plugins -->
70+
<central-publishing-plugin.version>0.7.0</central-publishing-plugin.version>
71+
<maven-gpg-plugin.version>3.2.7</maven-gpg-plugin.version>
72+
<maven-source-plugin.version>3.3.1</maven-source-plugin.version>
73+
<maven-javadoc-plugin.version>3.11.2</maven-javadoc-plugin.version>
4174
</properties>
4275

4376
<dependencyManagement>
@@ -247,4 +280,87 @@
247280
</plugin>
248281
</plugins>
249282
</build>
283+
284+
<profiles>
285+
<profile>
286+
<!-- Activated during release: ./mvnw deploy -P release -->
287+
<!-- Prerequisites:
288+
1. Register namespace io.github.dfa1 at central.sonatype.com (GitHub auto-validates).
289+
2. Generate a user token at central.sonatype.com → Account → User Tokens.
290+
3. Add to ~/.m2/settings.xml:
291+
<servers>
292+
<server>
293+
<id>central</id>
294+
<username>TOKEN_USERNAME</username>
295+
<password>TOKEN_PASSWORD</password>
296+
</server>
297+
</servers>
298+
4. GPG key must be published: gpg -\-send-keys <KEYID>
299+
-->
300+
<id>release</id>
301+
<build>
302+
<plugins>
303+
<plugin>
304+
<groupId>org.apache.maven.plugins</groupId>
305+
<artifactId>maven-source-plugin</artifactId>
306+
<version>${maven-source-plugin.version}</version>
307+
<executions>
308+
<execution>
309+
<id>attach-sources</id>
310+
<goals>
311+
<goal>jar-no-fork</goal>
312+
</goals>
313+
</execution>
314+
</executions>
315+
</plugin>
316+
<plugin>
317+
<groupId>org.apache.maven.plugins</groupId>
318+
<artifactId>maven-javadoc-plugin</artifactId>
319+
<version>${maven-javadoc-plugin.version}</version>
320+
<executions>
321+
<execution>
322+
<id>attach-javadocs</id>
323+
<goals>
324+
<goal>jar</goal>
325+
</goals>
326+
</execution>
327+
</executions>
328+
<configuration>
329+
<doclint>none</doclint>
330+
</configuration>
331+
</plugin>
332+
<plugin>
333+
<groupId>org.apache.maven.plugins</groupId>
334+
<artifactId>maven-gpg-plugin</artifactId>
335+
<version>${maven-gpg-plugin.version}</version>
336+
<executions>
337+
<execution>
338+
<id>sign-artifacts</id>
339+
<phase>verify</phase>
340+
<goals>
341+
<goal>sign</goal>
342+
</goals>
343+
<configuration>
344+
<gpgArguments>
345+
<arg>--pinentry-mode</arg>
346+
<arg>loopback</arg>
347+
</gpgArguments>
348+
</configuration>
349+
</execution>
350+
</executions>
351+
</plugin>
352+
<plugin>
353+
<groupId>org.sonatype.central</groupId>
354+
<artifactId>central-publishing-maven-plugin</artifactId>
355+
<version>${central-publishing-plugin.version}</version>
356+
<extensions>true</extensions>
357+
<configuration>
358+
<publishingServerId>central</publishingServerId>
359+
</configuration>
360+
</plugin>
361+
</plugins>
362+
</build>
363+
</profile>
364+
</profiles>
365+
250366
</project>

0 commit comments

Comments
 (0)