Hello everyone, :-)

 

I'm currently sitting on the book "Continuous Delivery" written by Jez
Humble and David Farley.

They write that each build is a potential release candidate. And each
build should be triggered by the check-in into the SCM.

So far, so good. But how do I realize that in Maven?

Up until now the version number in our Maven projects and modules have
been static. If it had to be changed the developer had to perform that
step.

But if the CI server performs the build as well as putting the result
into the repository (in our case Nexus), the resulting artifacts have to
include the build number in some way. Otherwise I overwrite the same
artifact other and other again until a developer changes the version in
the POM file. Depending projects then will see only the last version of
the artifact and builds won't be repeatable (means the functionality of
the artifact changes without anyone noticing it).

One way would be to modify the POM between the check-out from the SCM
and the Maven build process and writing the build number into it.

But then I will have the problem in the IDE that it don't understand
that the current version I've checked-out is the version I have referred
on in another project I've checked-out.

If the CI server checks-in the changed POM file afterwards it will
trigger the next build. Also it will cause problems if the POM was
changed in the SCM in the meantime as the CI maybe can't merge it.

 

Anyone solved that problem?

 

Regards,

Gerrit

 

Reply via email to