-
Notifications
You must be signed in to change notification settings - Fork 0
/
pom.xml
170 lines (152 loc) · 5.99 KB
/
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.lbruun.tests</groupId>
<artifactId>maven-central-publish-example</artifactId>
<version>${revision}${sha1}${changelist}</version> <!-- never change this -->
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Some sensible defaults for local development.
These are only used when executing Maven locally.
The values have absolutely no significance.
Use whatever feels natural to you. -->
<revision/>
<changelist>LATEST-SNAPSHOT</changelist>
<sha1/>
</properties>
<name>Maven Central Publish Example</name>
<description>Example of how to publish a Java library to Maven Central using GitHub and Maven.</description>
<url>https://github.com/lbruun-net/maven-central-publish-example</url>
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>Lars Bruun-Hansen</name>
<organization>lbruun.net</organization>
<organizationUrl>https://github.com/lbruun</organizationUrl>
</developer>
</developers>
<!-- This section is not used in the deploy/release process, but is required to exist for
publishing to Maven Central. -->
<scm>
<connection>scm:git:https://github.com/lbruun-net/maven-central-publish-example.git</connection>
<developerConnection>scm:git:https://github.com/lbruun-net/maven-central-publish-example.git</developerConnection>
<url>https://github.com/lbruun-net/maven-central-publish-example</url>
</scm>
<build>
<pluginManagement>
<plugins>
<!-- This POM uses the classic maven-deploy-plugin. We could alternatively use Sonatype's Staging Plugin
which can by-pass the UI action. When we use the classic maven-deploy-plugin it will be required (after
deployment has executed) to go into the Sonatype UI and release the artifact bundle.
Once you become confident with the workflow, you can switch to the Sonatype Staging plugin instead. -->
<!-- Maven prior to v3.9 uses version 2.x of the deploy plugin and after this use v3.x of the deploy plugin.
We use the 'altReleaseDeploymentRepository' and 'altSnapshotDeploymentRepository' properties
so best to use v3.x of the plugin -->
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.2</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- Javadoc here because we want to know early if there are errors in Javadoc generation.
In the standard Sonatype guidelines it is inside the 'release-to-central' profile
which means we will not discover Javadoc errors until we decide to release.
Instead, we pay the price of Javadoc generation on every commit: an acceptable tradeoff.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.2</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- The 'flatten-maven-plugin' is required because we use Maven CI Friendly feature.
See https://maven.apache.org/maven-ci-friendly.html for more information.
In Maven 4 we can finally get rid of this plugin. -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.2.5</version>
<configuration>
<flattenMode>ossrh</flattenMode>
</configuration>
<executions>
<!-- enable flattening -->
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
<!-- ensure proper cleanup -->
<execution>
<id>flatten.clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release-to-central</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<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-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>