Re: Modifying $project properties with maven-scripting-plugin?
Nils Breunese <[email protected]> Thu, 8 Jan 2026 23:49:34 +0100
| Newsgroups | gmane.comp.jakarta.turbine.maven.user |
|---|---|
| Message-ID | <[email protected]> |
Mirko Friedenhagen <[email protected]> wrote: > AFAIK profiles _may not_ be activated via project properties, only via system-properties/environment variables. > Thinking loud: maybe set this in .mvn/maven.config? I think Tamás meant to suggest auto-activating profiles based on the JDK version (https://maven.apache.org/guides/introduction/introduction-to-profiles.html#jdk). Something like this: <profiles> <profile> <activation> <jdk>21</jdk> </activation> <properties> <docker-maven-plugin.from>docker.io/library/eclipse-temurin:21.0.9_10-jre-alpine-3.23</docker-maven-plugin.from> </properties> </profile> <profile> <activation> <jdk>25</jdk> </activation> <properties> <docker-maven-plugin.from>docker.io/library/eclipse-temurin:25.0.1_8-jre-alpine-3.23</docker-maven-plugin.from> </properties> </profile> </profiles> Nils. >> Am 07.01.2026 um 18:11 schrieb Tamás Cservenák <[email protected]>: >> >> Howdy, >> >> Would not doing this be simpler from a profile? Which is activated >> based on the Java version? >> >> T >> >> On Wed, Jan 7, 2026 at 5:36 PM Mirko Friedenhagen <[email protected]> wrote: >>> >>> Hi, >>> >>> is it somehow possible to add or modify the project resp. its properties during e.g. validate or initialize with this plugin? >>> I defined the following and want >>> >>> <properties> >>> <docker-maven-plugin.from>docker.io/library/eclipse-temurin:21.0.9_10-jre-alpine-3.23</docker-maven-plugin.from> >>> <java.version>21<java.version> >>> </properties> >>> >>> <plugins> >>> <plugin> >>> <artifactId>maven-scripting-plugin</artifactId> >>> <version>3.1.0</version> >>> <executions> >>> <execution> >>> <id>foo</id> >>> <phase>initialize</phase> >>> <goals><goal>eval</goal></goals> >>> <configuration> >>> <engineName>java</engineName> >>> <script><![CDATA[ >>> var props = $project.getProperties(); >>> System.err.println("XXXXX " + props.getProperty("docker-maven-plugin.from")); >>> var version = props.getProperty("java.version"); >>> switch (version) { >>> case "21" -> props.setProperty("docker-maven-plugin.from", "docker.io/library/eclipse-temurin:21.0.9_10-jre-alpine-3.23"); >>> case "25" -> props.setProperty("docker-maven-plugin.from", "docker.io/library/eclipse-temurin:25.0.1_8-jre-alpine-3.23"); >>> default -> throw new IllegalArgumentException("Not supported“); >>> } >>> System.err.println("YYYYY " + props.getProperty("docker-maven-plugin.from")); >>> ]]> >>> </script> >>> </configuration> >>> </execution> >>> </executions> >>> </plugin> >>> <plugins> >>> >>> The println statement are executed and show the „correct“ result, however when I lateron reference reference property docker-maven-plugin.from in a plugin it still has the value of the definition in the standard properties section. >>> >>> >>> Mit freundlichen Grüßen >>> Mirko Friedenhagen