Skip to content

Commit 5ce849f

Browse files
Split jpms modules into independet artifacts instead of classifier based solution
The jna-platform artifact depends on jna - this leads to problems when the JPMS artifacts are used, as the pom.xml for the classifier based artifacts are identical to the base artifacts. This leads to <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna-platform</artifactId> <version>5.7.0</version> <classifier>jpms</classifier> </dependency> depending on <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>5.7.0</version> </dependency> so the jna-platform JPMS artifacts pulls in the non-JPMS jna artifact. To solve this, both artifacts are moved into their own groupId. So <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna-platform</artifactId> <version>5.8.0</version> <classifier>jpms</classifier> </dependency> becomes <dependency> <groupId>net.java.dev.jna.jpms</groupId> <artifactId>jna-platform</artifactId> <version>5.8.0</version> </dependency>
1 parent be5eec5 commit 5ce849f

File tree

5 files changed

+205
-18
lines changed

5 files changed

+205
-18
lines changed

CHANGES.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,15 @@ Features
1010

1111
Bug Fixes
1212
---------
13-
13+
* [#1317](https://github.com/java-native-access/jna/pull/1317): Change the maven coordinates of the JPMS artifacts from classifier `jpms` to custom group id `net.java.dev.jna.jpms` - [@matthiasblaesing](https://github.com/matthiasblaesing).
14+
15+
Important Changes
16+
-----------------
17+
* The maven coordinates of the experimental JPMS (java module system) artifacts
18+
were moved from using the classifier `jpms` to their own group id
19+
`net.java.dev.jna.jpms`, without an classifier. The reason for this is, that
20+
the platform artifacts depend on the jna artifacts and need to pull in the
21+
right variant. This is not possible if the classifier is used.
1422

1523
Release 5.7.0
1624
=============

build.xml

+79-14
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,13 @@
152152

153153
<property name="pom-base" value="pom-jna.xml" />
154154
<property name="pom-platform-base" value="pom-jna-platform.xml" />
155+
<property name="pom-jpms-base" value="pom-jna-jpms.xml" />
156+
<property name="pom-platform-jpms-base" value="pom-jna-platform-jpms.xml" />
155157

156158
<property name="pom" value="${build}/pom-jna.xml" />
157159
<property name="pom-platform" value="${build}/pom-jna-platform.xml" />
160+
<property name="pom-jpms" value="${build}/pom-jna-jpms.xml" />
161+
<property name="pom-platform-jpms" value="${build}/pom-jna-platform-jpms.xml" />
158162

159163
<target name="default" depends="test" description="Build and Test."/>
160164

@@ -195,26 +199,39 @@
195199
<property name="build.os.family" value="other"/>
196200
<property name="build.os.arch" value="${os.arch}" />
197201
<property name="build.os.endianess" value="${sun.cpu.endian}" />
198-
202+
199203
<condition property="-native" value="true">
200204
<not><isset property="build-native"/></not>
201205
</condition>
202206
<condition property="jni.valid" value="true">
203207
<isset property="-native"/>
204208
</condition>
205209

206-
<copy file="${pom-base}" todir="${build}" />
207-
<copy file="${pom-platform-base}" todir="${build}" />
210+
<copy file="${pom-base}" tofile="${pom}" />
211+
<copy file="${pom-platform-base}" tofile="${pom-platform}" />
212+
<copy file="${pom-jpms-base}" tofile="${pom-jpms}" />
213+
<copy file="${pom-platform-jpms-base}" tofile="${pom-platform-jpms}" />
208214

209215
<replaceregexp match="(&lt;version&gt;).*(&lt;/version&gt;)"
210216
replace="\1${jna.version}\2"
217+
flags="g"
211218
file="${pom}"/>
212219

213220
<replaceregexp match="(&lt;version&gt;).*(&lt;/version&gt;)"
214221
replace="\1${jna.version}\2"
215222
flags="g"
216223
file="${pom-platform}"/>
217224

225+
<replaceregexp match="(&lt;version&gt;).*(&lt;/version&gt;)"
226+
replace="\1${jna.version}\2"
227+
flags="g"
228+
file="${pom-jpms}"/>
229+
230+
<replaceregexp match="(&lt;version&gt;).*(&lt;/version&gt;)"
231+
replace="\1${jna.version}\2"
232+
flags="g"
233+
file="${pom-platform-jpms}"/>
234+
218235
<condition property="jar.omitted" value="**/*jnidispatch*" else="jnilib-included">
219236
<isset property="omit-jnilib"/>
220237
</condition>
@@ -1553,10 +1570,10 @@ cd ..
15531570

15541571
<artifact:mvn failonerror="true">
15551572
<arg value="org.apache.maven.plugins:maven-install-plugin:2.5:install-file"/>
1556-
<arg value="-DpomFile=${pom}"/>
1573+
<arg value="-DpomFile=${pom-jpms}"/>
15571574
<arg value="-Dfile=${dist-jar-jpms}"/>
1558-
<arg value="-Dclassifier=jpms"/>
1559-
<arg value="-Dpackaging=jar"/>
1575+
<arg value="-Dsources=${maven-sources-jar}"/>
1576+
<arg value="-Djavadoc=${maven-javadoc-jar}"/>
15601577
</artifact:mvn>
15611578

15621579
<artifact:mvn failonerror="true">
@@ -1569,10 +1586,10 @@ cd ..
15691586

15701587
<artifact:mvn failonerror="true">
15711588
<arg value="org.apache.maven.plugins:maven-install-plugin:2.5:install-file"/>
1572-
<arg value="-DpomFile=${pom-platform}"/>
1589+
<arg value="-DpomFile=${pom-platform-jpms}"/>
15731590
<arg value="-Dfile=${platform-jpms-jar}"/>
1574-
<arg value="-Dclassifier=jpms"/>
1575-
<arg value="-Dpackaging=jar"/>
1591+
<arg value="-Dsources=${platform-sources-jar}"/>
1592+
<arg value="-Djavadoc=${platform-javadoc-jar}"/>
15761593
</artifact:mvn>
15771594
</target>
15781595

@@ -1584,9 +1601,9 @@ cd ..
15841601
<arg value="-DrepositoryId=${maven-snapshots-repository-id}"/>
15851602
<arg value="-DpomFile=${pom}"/>
15861603
<arg value="-Dfile=${dist-jar}"/>
1587-
<arg value="-Dfiles=${maven-sources-jar},${maven-javadoc-jar},${dist-jar-jpms},${dist-aar}"/>
1588-
<arg value="-Dtypes=jar,jar,jar,aar"/>
1589-
<arg value="-Dclassifiers=sources,javadoc,jpms,"/>
1604+
<arg value="-Dfiles=${maven-sources-jar},${maven-javadoc-jar},${dist-aar}"/>
1605+
<arg value="-Dtypes=jar,jar,aar"/>
1606+
<arg value="-Dclassifiers=sources,javadoc,"/>
15901607
</artifact:mvn>
15911608

15921609
<artifact:mvn failonerror="true">
@@ -1595,9 +1612,31 @@ cd ..
15951612
<arg value="-DrepositoryId=${maven-snapshots-repository-id}"/>
15961613
<arg value="-DpomFile=${pom-platform}"/>
15971614
<arg value="-Dfile=${platform-jar}"/>
1598-
<arg value="-Dfiles=${platform-sources-jar},${platform-javadoc-jar},${platform-jpms-jar}"/>
1615+
<arg value="-Dfiles=${platform-sources-jar},${platform-javadoc-jar}"/>
15991616
<arg value="-Dtypes=jar,jar,jar"/>
1600-
<arg value="-Dclassifiers=sources,javadoc,jpms"/>
1617+
<arg value="-Dclassifiers=sources,javadoc"/>
1618+
</artifact:mvn>
1619+
1620+
<artifact:mvn failonerror="true">
1621+
<arg value="org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file"/>
1622+
<arg value="-Durl=${maven-snapshots-repository-url}"/>
1623+
<arg value="-DrepositoryId=${maven-snapshots-repository-id}"/>
1624+
<arg value="-DpomFile=${pom-jpms}"/>
1625+
<arg value="-Dfile=${dist-jar-jpms}"/>
1626+
<arg value="-Dfiles=${maven-sources-jar},${maven-javadoc-jar}"/>
1627+
<arg value="-Dtypes=jar,jar"/>
1628+
<arg value="-Dclassifiers=sources,javadoc"/>
1629+
</artifact:mvn>
1630+
1631+
<artifact:mvn failonerror="true">
1632+
<arg value="org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file"/>
1633+
<arg value="-Durl=${maven-snapshots-repository-url}"/>
1634+
<arg value="-DrepositoryId=${maven-snapshots-repository-id}"/>
1635+
<arg value="-DpomFile=${pom-platform-jpms}"/>
1636+
<arg value="-Dfile=${platform-jpms-jar}"/>
1637+
<arg value="-Dfiles=${platform-sources-jar},${platform-javadoc-jar}"/>
1638+
<arg value="-Dtypes=jar,jar"/>
1639+
<arg value="-Dclassifiers=sources,javadoc"/>
16011640
</artifact:mvn>
16021641
</target>
16031642

@@ -1630,6 +1669,32 @@ cd ..
16301669
<arg value="-Dtypes=jar,jar,jar"/>
16311670
<arg value="-Dgpg.useagent=true"/>
16321671
</artifact:mvn>
1672+
1673+
<!-- sign and deploy the jna, artifact -->
1674+
<artifact:mvn failonerror="true">
1675+
<arg value="org.apache.maven.plugins:maven-gpg-plugin:${version-maven-gpg-plugin}:sign-and-deploy-file"/>
1676+
<arg value="-Durl=${maven-staging-repository-url}"/>
1677+
<arg value="-DrepositoryId=${maven-staging-repository-id}"/>
1678+
<arg value="-DpomFile=${pom-jpms}"/>
1679+
<arg value="-Dfile=${dist-jar-jpms}"/>
1680+
<arg value="-Dfiles=${maven-sources-jar},${maven-javadoc-jar}"/>
1681+
<arg value="-Dtypes=jar,jar"/>
1682+
<arg value="-Dclassifiers=sources,javadoc"/>
1683+
<arg value="-Dgpg.useagent=true"/>
1684+
</artifact:mvn>
1685+
1686+
<!-- sign and deploy the platform artifact -->
1687+
<artifact:mvn failonerror="true">
1688+
<arg value="org.apache.maven.plugins:maven-gpg-plugin:${version-maven-gpg-plugin}:sign-and-deploy-file"/>
1689+
<arg value="-Durl=${maven-staging-repository-url}"/>
1690+
<arg value="-DrepositoryId=${maven-staging-repository-id}"/>
1691+
<arg value="-DpomFile=${pom-platform-jpms}"/>
1692+
<arg value="-Dfile=${platform-jpms-jar}"/>
1693+
<arg value="-Dfiles=${platform-sources-jar},${platform-javadoc-jar}"/>
1694+
<arg value="-Dtypes=jar,jar"/>
1695+
<arg value="-Dclassifiers=sources,javadoc"/>
1696+
<arg value="-Dgpg.useagent=true"/>
1697+
</artifact:mvn>
16331698
</target>
16341699

16351700
<target name="-bootstrap-maven">

pom-jna-jpms.xml

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
4+
http://maven.apache.org/maven-v4_0_0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>net.java.dev.jna.jpms</groupId>
8+
<artifactId>jna</artifactId>
9+
<version>TEMPLATE</version>
10+
<packaging>jar</packaging>
11+
12+
<name>Java Native Access</name>
13+
<description>Java Native Access</description>
14+
<url>https://github.com/java-native-access/jna</url>
15+
16+
<licenses>
17+
<license>
18+
<name>LGPL, version 2.1</name>
19+
<url>http://www.gnu.org/licenses/licenses.html</url>
20+
<distribution>repo</distribution>
21+
</license>
22+
<license>
23+
<name>Apache License v2.0</name>
24+
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
25+
<distribution>repo</distribution>
26+
</license>
27+
</licenses>
28+
29+
<scm>
30+
<connection>scm:git:https://github.com/java-native-access/jna</connection>
31+
<developerConnection>scm:git:ssh://[email protected]/java-native-access/jna.git</developerConnection>
32+
<url>https://github.com/java-native-access/jna</url>
33+
</scm>
34+
35+
<developers>
36+
<developer>
37+
<id>twall</id>
38+
<name>Timothy Wall</name>
39+
<roles>
40+
<role>Owner</role>
41+
</roles>
42+
</developer>
43+
<developer>
44+
<email>[email protected]</email>
45+
<name>Matthias Bläsing</name>
46+
<url>https://github.com/matthiasblaesing/</url>
47+
<roles>
48+
<role>Developer</role>
49+
</roles>
50+
</developer>
51+
</developers>
52+
53+
</project>

pom-jna-platform-jpms.xml

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
4+
http://maven.apache.org/maven-v4_0_0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>net.java.dev.jna</groupId>
8+
<artifactId>jna-platform</artifactId>
9+
<version>TEMPLATE</version>
10+
<packaging>jar</packaging>
11+
12+
<name>Java Native Access Platform</name>
13+
<description>Java Native Access Platform</description>
14+
<url>https://github.com/java-native-access/jna</url>
15+
16+
<licenses>
17+
<license>
18+
<name>LGPL, version 2.1</name>
19+
<url>http://www.gnu.org/licenses/licenses.html</url>
20+
<distribution>repo</distribution>
21+
</license>
22+
<license>
23+
<name>Apache License v2.0</name>
24+
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
25+
<distribution>repo</distribution>
26+
</license>
27+
</licenses>
28+
29+
<scm>
30+
<connection>scm:git:https://github.com/java-native-access/jna</connection>
31+
<developerConnection>scm:git:ssh://[email protected]/java-native-access/jna.git</developerConnection>
32+
<url>https://github.com/java-native-access/jna</url>
33+
</scm>
34+
35+
<developers>
36+
<developer>
37+
<id>twall</id>
38+
<name>Timothy Wall</name>
39+
<roles>
40+
<role>Owner</role>
41+
</roles>
42+
</developer>
43+
<developer>
44+
<email>[email protected]</email>
45+
<name>Matthias Bläsing</name>
46+
<url>https://github.com/matthiasblaesing/</url>
47+
<roles>
48+
<role>Developer</role>
49+
</roles>
50+
</developer>
51+
</developers>
52+
53+
<dependencies>
54+
<dependency>
55+
<groupId>net.java.dev.jna</groupId>
56+
<artifactId>jna</artifactId>
57+
<version>TEMPLATE</version>
58+
</dependency>
59+
</dependencies>
60+
61+
</project>

pom-jna-platform.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
http://maven.apache.org/maven-v4_0_0.xsd">
55
<modelVersion>4.0.0</modelVersion>
66

7-
<groupId>net.java.dev.jna</groupId>
7+
<groupId>net.java.dev.jna.jpms</groupId>
88
<artifactId>jna-platform</artifactId>
99
<version>TEMPLATE</version>
1010
<packaging>jar</packaging>
@@ -52,9 +52,9 @@
5252

5353
<dependencies>
5454
<dependency>
55-
<groupId>net.java.dev.jna</groupId>
55+
<groupId>net.java.dev.jna.jpms</groupId>
5656
<artifactId>jna</artifactId>
57-
<version>5.5.1-SNAPSHOT</version>
57+
<version>TEMPLATE</version>
5858
</dependency>
5959
</dependencies>
6060

0 commit comments

Comments
 (0)