Skip to content

Commit d601f65

Browse files
committed
Refactor pom.xml to support dynamic versioning and JDK profiles for JDK21 and JDK25
1 parent a8ac3ff commit d601f65

1 file changed

Lines changed: 89 additions & 11 deletions

File tree

pom.xml

Lines changed: 89 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<!-- Use your verified namespace -->
88
<groupId>io.github.beehive-lab</groupId>
99
<artifactId>gpu-llama3</artifactId>
10-
<version>0.3.1</version> <!-- release version (no -SNAPSHOT) -->
10+
<version>${revision}${jdk.version.suffix}</version>
1111

1212
<name>GPU Llama3</name>
1313
<description>GPU-accelerated LLaMA3 inference using TornadoVM</description>
@@ -37,8 +37,14 @@
3737
</scm>
3838

3939
<properties>
40-
<maven.compiler.source>25</maven.compiler.source>
41-
<maven.compiler.target>25</maven.compiler.target>
40+
<!-- CI-friendly version: resolved by flatten-maven-plugin at build time -->
41+
<revision>0.3.1</revision>
42+
<jdk.version.suffix></jdk.version.suffix> <!-- empty=JDK21, -jdk25=JDK25 -->
43+
<!-- TornadoVM version: overridden per JDK profile -->
44+
<tornadovm.version>3.0.0</tornadovm.version> <!-- JDK21 default -->
45+
<!-- Compiler defaults (overridden by JDK profiles below) -->
46+
<maven.compiler.source>21</maven.compiler.source>
47+
<maven.compiler.target>21</maven.compiler.target>
4248
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4349
<maven.javadoc.skip>true</maven.javadoc.skip>
4450
<gpg.skip>true</gpg.skip>
@@ -54,31 +60,54 @@
5460
<dependency>
5561
<groupId>io.github.beehive-lab</groupId>
5662
<artifactId>tornado-api</artifactId>
57-
<version>3.0.0-jdk25</version>
63+
<version>${tornadovm.version}</version>
5864
</dependency>
5965
<dependency>
6066
<groupId>io.github.beehive-lab</groupId>
6167
<artifactId>tornado-runtime</artifactId>
62-
<version>3.0.0-jdk25</version>
68+
<version>${tornadovm.version}</version>
6369
</dependency>
6470
</dependencies>
6571

6672
<build>
6773
<plugins>
68-
<!-- Compiler -->
74+
<!-- Compiler: enable-preview for both JDKs.
75+
jdk.incubator.vector is added only for JDK21 (see jdk21 profile below).
76+
On JDK25 Vector API is stable; the add-modules flag is not needed. -->
6977
<plugin>
7078
<groupId>org.apache.maven.plugins</groupId>
7179
<artifactId>maven-compiler-plugin</artifactId>
7280
<version>3.11.0</version>
7381
<configuration>
7482
<compilerArgs>
7583
<arg>--enable-preview</arg>
76-
<arg>--add-modules</arg>
77-
<arg>jdk.incubator.vector</arg>
7884
</compilerArgs>
7985
</configuration>
8086
</plugin>
8187

88+
<!-- Flatten: resolves ${revision}${jdk.version.suffix} in the published POM -->
89+
<plugin>
90+
<groupId>org.codehaus.mojo</groupId>
91+
<artifactId>flatten-maven-plugin</artifactId>
92+
<version>1.6.0</version>
93+
<configuration>
94+
<updatePomFile>true</updatePomFile>
95+
<flattenMode>resolveCiFriendliesOnly</flattenMode>
96+
</configuration>
97+
<executions>
98+
<execution>
99+
<id>flatten</id>
100+
<phase>process-resources</phase>
101+
<goals><goal>flatten</goal></goals>
102+
</execution>
103+
<execution>
104+
<id>flatten.clean</id>
105+
<phase>clean</phase>
106+
<goals><goal>clean</goal></goals>
107+
</execution>
108+
</executions>
109+
</plugin>
110+
82111
<!-- Shade (fat jar) -->
83112
<plugin>
84113
<groupId>org.apache.maven.plugins</groupId>
@@ -103,6 +132,56 @@
103132

104133
<!-- Profiles for optional/conditional builds -->
105134
<profiles>
135+
136+
<!-- ─── JDK 21 ───────────────────────────────────────────────────────────
137+
Auto-activates for JDK 21.x builds.
138+
Publishes: gpu-llama3:${revision} (no suffix)
139+
TornadoVM: 3.0.0
140+
Adds add-modules jdk.incubator.vector (still incubating in JDK21)
141+
─────────────────────────────────────────────────────────────────────── -->
142+
<profile>
143+
<id>jdk21</id>
144+
<activation><jdk>[21,25)</jdk></activation>
145+
<properties>
146+
<maven.compiler.source>21</maven.compiler.source>
147+
<maven.compiler.target>21</maven.compiler.target>
148+
<tornadovm.version>3.0.0</tornadovm.version>
149+
<jdk.version.suffix></jdk.version.suffix>
150+
</properties>
151+
<build>
152+
<plugins>
153+
<plugin>
154+
<groupId>org.apache.maven.plugins</groupId>
155+
<artifactId>maven-compiler-plugin</artifactId>
156+
<configuration>
157+
<!-- Appended to enable-preview already in main build -->
158+
<compilerArgs combine.children="append">
159+
<arg>--add-modules</arg>
160+
<arg>jdk.incubator.vector</arg>
161+
</compilerArgs>
162+
</configuration>
163+
</plugin>
164+
</plugins>
165+
</build>
166+
</profile>
167+
168+
<!-- ─── JDK 25 ───────────────────────────────────────────────────────────
169+
Auto-activates for JDK 25.0.2+ builds (minimum required version).
170+
Publishes: gpu-llama3:${revision}-jdk25
171+
TornadoVM: 3.0.0-jdk25
172+
Vector API is stable in JDK25; add-modules jdk.incubator.vector not needed
173+
─────────────────────────────────────────────────────────────────────── -->
174+
<profile>
175+
<id>jdk25</id>
176+
<activation><jdk>[25.0.2,)</jdk></activation>
177+
<properties>
178+
<maven.compiler.source>25</maven.compiler.source>
179+
<maven.compiler.target>25</maven.compiler.target>
180+
<tornadovm.version>3.0.0-jdk25</tornadovm.version>
181+
<jdk.version.suffix>-jdk25</jdk.version.suffix>
182+
</properties>
183+
</profile>
184+
106185
<profile>
107186
<id>release</id>
108187
<properties>
@@ -132,11 +211,10 @@
132211
<artifactId>maven-javadoc-plugin</artifactId>
133212
<version>3.6.3</version>
134213
<configuration>
135-
<source>21</source>
136-
<release>21</release>
214+
<source>${maven.compiler.source}</source>
215+
<release>${maven.compiler.source}</release>
137216
<additionalJOptions>
138217
<additionalJOption>--enable-preview</additionalJOption>
139-
<additionalJOption>--add-modules=jdk.incubator.vector</additionalJOption>
140218
</additionalJOptions>
141219
<additionalOptions>
142220
<additionalOption>--enable-preview</additionalOption>

0 commit comments

Comments
 (0)