Re: Modifying $project properties with maven-scripting-plugin?
Alexander Kriegisch <[email protected]> Fri, 9 Jan 2026 08:37:45 +0700
| Newsgroups | gmane.comp.jakarta.turbine.maven.user |
|---|---|
| Message-ID | <[email protected]> |
I have not tried, but in Nils' solution both profiles might be active, and I am unsure which property would win. In some of my project, I rather did this: <jdk>[1.8,16)</jdk> ... <jdk>[16,24)</jdk> ... <jdk>[24,)</jdk> ... -- Alexander Kriegisch https://scrum-master.de Nils Breunese schrieb am 09.01.2026 um 05:49: > 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 > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] >