Olivier,

If the project you are pointing is what is behind "Maven Integration" in
Jenkins then it does things wrong by not taking into account maven
core-extensions.

I just retested now:
- download Jenkins.war 2.232
- launch as java -jar
- default installation
- add plugin "Maven integration"
- in settings add a local JDK 11
- in settings add a default maven 3.6.3
- create new job "jgitver in jenkins"
- set git url : https://github.com/jgitver/jgitver.git
- set goal : validate
- run the job

You will see in the output that the version of the project is 0 whereas it
should have been computed by a core extension.

...
[INFO] ---------------------< fr.brouillard.oss:jgitver >----------------------
[INFO] Building GIT versioning using jgit 0
[INFO] --------------------------------[ jar ]---------------------------------
...


If you do the same in CMD/sh you should see the automatic computation

[INFO] Using jgitver configuration file:
C:\workspace\projects\oss\jgitver\jgitver-lib\.mvn\jgitver.config.xml
[INFO] Using jgitver-maven-plugin [1.5.1] (sha1:
e45d1669b39cedb98720dd33cc14d0185b455ca1)
[INFO]     version '0.12.1-SNAPSHOT' computed in 15595 ms
[INFO]
[INFO] Scanning for projects...
[INFO] jgitver-maven-plugin is about to change project(s) version(s)
[INFO]     fr.brouillard.oss::jgitver::0 -> 0.12.1-SNAPSHOT
[INFO]
[INFO] ---------------------< fr.brouillard.oss:jgitver
>----------------------
[INFO] Building GIT versioning using jgit 0.12.1-SNAPSHOT
[INFO] --------------------------------[ jar
]---------------------------------
...

This is not particular to jgitver but to any core extension (takari
polyglot, tycho pom less, ...).
The way this jenkins project loads the Maven Project Object Model is
somehow wrong or at least not complete.

IMO the POM loading is better done in maven-flatten-plugin.

Matthieu

On Fri, Apr 17, 2020 at 6:00 AM Olivier Lamy <ol...@apache.org> wrote:

> Hi,
>
> That's the way to do it
> There is a library to ease that here
> https://github.com/jenkinsci/lib-jenkins-maven-embedder/tree/master
>
> cheers
> Olivier
>
>
> On Fri, 17 Apr 2020 at 13:04, Tomo Suzuki <suzt...@google.com.invalid>
> wrote:
>
> > I'm interested in that problem too. In the project below, we use
> > PlexusContainer to instantiate MavenProject class from pom file:
> >
> >
> https://github.com/GoogleCloudPlatform/cloud-opensource-java/blob/master/dependencies/src/main/java/com/google/cloud/tools/opensource/dependencies/RepositoryUtility.java#L209
> >
> > I hope there's a better way to achieve this.
> >
> > On Thu, Apr 16, 2020 at 6:55 AM Andres Almiray <aalmi...@gmail.com>
> wrote:
> >
> > > Hi,
> > >
> > > I'm looking for a way to launch Maven programmatically in such a way
> > that I
> > > can get access to fully resolved Model and MavenProject instances, and
> > not
> > > just for a single project but also for all projects that belong to a
> > > Reactor.
> > >
> > > At first I used this code
> > >
> > > try {
> > >     FileReader reader = new FileReader(pom);
> > >     MavenXpp3Reader mavenReader = new MavenXpp3Reader();
> > >     return new MavenProject(mavenReader.read(reader));
> > > } catch (Exception e) {
> > >     throw new IllegalArgumentException(e);
> > > }
> > >
> > > But of course that's not enough. Next I tried using the
> > maven-model-builder
> > > APIs directly but not all references get resolved (such as parent POMs)
> > as
> > > a custom ModelResolver is required and the default one is not intended
> to
> > > be used in standalone fashion.
> > >
> > > Ideally I would call some sort of embeddable Maven API that can give me
> > the
> > > answers I seek, something like this
> > >
> > > MavenProject project =
> > EmbeddableMaven.launch(propsOrFlags).file(pomFile);
> > >
> > > or alternatively something like
> > >
> > > MavenReactor reactor =
> > EmbeddableMaven.launch(propsOrFlags).file(pomFile);
> > > for(MavenProject project : reactor.getProjects()) { /* do stuff */ }
> > >
> > > Of course I'm making up these types and method names as I do not know
> if
> > > something like this exist or not, hence why I'm asking here.
> > >
> > > Thanks in advance.
> > >
> > > Cheers
> > > Andres
> > >
> >
> >
> > --
> > Regards,
> > Tomo
> >
>
>
> --
> Olivier Lamy
> http://twitter.com/olamy | http://linkedin.com/in/olamy
>

Reply via email to