I suggest to remove the clean goal from your CI build. If there are no changes, Maven should not try to rebuild the modules, and thereby not deploy them. If you don’t use clean,
then Maven may not be aware of the existing artifacts in nexus, so you may be missing a <repository> reference to your Nexus.
Mit freundlichen Grüßen / Best regards
Michael Keppler
LTO Release Engineering (ETAS/ESW-CI)
Tel. +49 711 3423-2429 | Fax +49 711 89661-0 |
Michael.Keppler@xxxxxxxx
Von: tycho-user <tycho-user-bounces@xxxxxxxxxxx>
Im Auftrag von erwindl0@xxxxxxxxx
Gesendet: Montag, 8. März 2021 14:01
An: tycho-user@xxxxxxxxxxx
Betreff: [tycho-user] Tycho pom-less multi-module builds with semantic versioning
I have a multi-module build with Tycho 2.0.0 pom-less, which I have released in version 1.0.0.
This includes deploying the bundles and features to our Nexus repo, besides building a product.
I use the maven deploy 2.8.2 plugin for the deployment.
I now want to start implementation of a small set of changes in some of the bundles (in 1 feature), and do not want to use 1 common version for ALL modules, but only start increasing to 1.1.0.qualifier for those bundles (and feature) where
real new stuff is to happen.
When I build my new work, there is effectively a mix of unchanged bundles with versions still on 1.0.0 (already released) and 2 on the new qualifier/snapshot version.
This is fine for local tycho builds and installs in my local .m2 repo.
But in our Nexus it is forbidden to re-deploy already released artifacts.
When I want to deploy my new snapshots, the build fails as it always tries to redeploy the already released bundles as well...
I can not seem to find a way with more-or-less standard maven/tycho to skip deployment for already-released bundles.
I noticed that in the maven deploy 3.0.0-M2 they have expanded the "skip" option to also allow skipping per version type (release/snapshot), which seems to be what I need.
Cfr
https://github.com/apache/maven-deploy-plugin/blob/master/src/main/java/org/apache/maven/plugins/deploy/DeployMojo.java line 138
But this version of the deploy plugin is incompatible with Tycho it seems.
Are there concrete plans to let Tycho work with this new deploy plugin?
Or are there other approaches to address this kind of build requirements?
thanks
erwin
P.s. some more details:
The deploy plugin has now enforced that a build (e.g. the product) module needs a main artifact, not only attached artifacts, which seems to clash with Tycho's current implementation?
Error is : [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M2-SNAPSHOT:deploy (default-deploy) on project io.s2.passerelle.explore.portal.product: NoFileAssignedException: The packaging plugin for this project did not assign a main file to the project but it has attachments. Change packaging to 'pom'. -> [Help 1]
This is due to the use of
https://github.com/apache/maven-artifact-transfer/blob/maven-artifact-transfer-0.10.0/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DefaultProjectDeployer.java, cfr lines 108 etc