Howdy,

And not to mention, how Nisse works with Maven 3 as well, without the
need for the flatten plugin.
When extension is present, version can contain ANY expression, the
only requirement is to HAVE VALUE.
Also, Nisse (automatically) collects properties that need inlining
(user can extend configure more) and inlines them.

https://github.com/maveniverse/nisse

Thanks
T

On Wed, Oct 15, 2025 at 6:45 AM Guillaume Nodet <[email protected]> wrote:
>
> Can't you use Maven 4, where CI-friendly properties aren't restricted
> anymore and where the version for the whole reactor can be set by a
> property, or even using an extension ?
> JLine does that now : the property is defined by the nisse extension,
> automatically computed from the git history, and defined in a single place,
> in the root pom.
> The children just inherit this version.
>    https://github.com/jline/jline3/blob/master/pom.xml#L16
>
> Le mar. 14 oct. 2025 à 11:24, Xeno Amess <[email protected]> a écrit :
>
> > I found out even if I extend the  CI-Friendly versions can't I find a good
> > way to implement what I want, means declaring parent version from
> > properties.
> > If I really want it I have to modify maven to allow the pom be read, and
> > modify flatten to flatten the version in parent, then add a validator for
> > deploying to avoid some people pass a dynamic parent version to remote...
> >
> > Christoph Läubrich <[email protected]> 于2025年10月14日周二 17:06写道:
> >
> > > Mavens CI-Friendly versions are extensible, see for example:
> > >
> > >
> > >
> > https://github.com/eclipse-tycho/tycho/blob/main/tycho-build/src/main/java/org/eclipse/tycho/build/TychoCiFriendlyVersions.java
> > >
> > > but you need to know them by name due to how they work, so there can't
> > > be a simple prefix.
> > >
> > >
> > > Am 14.10.25 um 11:02 schrieb Xeno Amess:
> > > > findout I have to modify both maven and flatten-plugin to allow modify
> > > the
> > > > parent, and it be hard to forbid misuse to let dynamic parent version
> > by
> > > > argline
> > > > possibly I should find another idea to achieve this...
> > > >
> > > > Xeno Amess <[email protected]> 于2025年10月11日周六 17:01写道:
> > > >
> > > >> according to the codes we only have 3 of these properties.
> > > >>
> > > >> private static final String SHA1_PROPERTY = "sha1";
> > > >>
> > > >> private static final String CHANGELIST_PROPERTY = "changelist";
> > > >>
> > > >> private static final String REVISION_PROPERTY = "revision";
> > > >>
> > > >>
> > > >> should we add a new set of them (likely a prefix like ci_friendly_* )
> > > >>
> > > >> ----------
> > > >>
> > > >> the reason I want it is I have several repos who both inherited from a
> > > pom
> > > >> of a version, and use a same version number elsewhere.
> > > >>
> > > >> for example
> > > >>
> > > >> we have
> > > >>
> > > >> <parent>
> > > >>      <groupId>org.springframework.boot</groupId>
> > > >>      <artifactId>spring-boot-starter-parent</artifactId>
> > > >>      <version>3.5.6</version>
> > > >>      <relativePath></relativePath>
> > > >> </parent>
> > > >>
> > > >> and same time
> > > >>
> > > >> <properties>
> > > >>      <java.version>21</java.version>
> > > >>      <springboot.version>3.5.6</springboot.version>
> > > >>      <revision>0.0.1</revision>
> > > >>      <native.maven.plugin.version>0.11.0</native.maven.plugin.version>
> > > >>      <graalpy.version>25.0.0</graalpy.version>
> > > >>      <antlr.version>3.5.3</antlr.version>
> > > >>      <antlr4.version>4.13.2</antlr4.version>
> > > >>      <antlr4-c3.version>1.2.0x</antlr4-c3.version>
> > > >>      <grpc.version>1.76.0</grpc.version>
> > > >>      <protobuf.version>4.32.1</protobuf.version>
> > > >>
> > <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
> > > >>      <gop-root>${maven.multiModuleProjectDirectory}</gop-root>
> > > >>      <maven.compiler.proc>full</maven.compiler.proc>
> > > >>      <surefire-report-phase>prepare-package</surefire-report-phase>
> > > >>      <os-maven-plugin.version>1.7.1</os-maven-plugin.version>
> > > >>
> > > <protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version>
> > > >>      <replacer.version>1.5.3</replacer.version>
> > > >> </properties>
> > > >>
> > > >> and
> > > >>
> > > >> <dependency>
> > > >>      <groupId>org.springframework.boot</groupId>
> > > >>
> > > <artifactId>spring-boot-starter-oauth2-authorization-server</artifactId>
> > > >>      <version>${springboot.version}</version>
> > > >> </dependency>
> > > >>
> > > >> so seems it be better to let the version in parent use a same
> > propertie
> > > >> with the dependency.
> > > >> so we have to use a ci friendly property
> > > >> but we already use revision for the project version, and
> > sha/changelist
> > > >> seems not quite suitable
> > > >> so maybe we shall add rule to make every of ci_friendly_* property be
> > > >> ci_friendly property?
> > > >>
> > > >>
> > > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [email protected]
> > > For additional commands, e-mail: [email protected]
> > >
> > >
> >
>
>
> --
> ------------------------
> Guillaume Nodet

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to