Open mmusenbr opened 3 years ago
@redeamer See discussion in #305. Why do you use separate property for holding -SNAPSHOT
? PR-s are welcome. :)
Hi @aleksandr-m, thanks for the quick response. Because #305 does not cover the case, that dependency versions are also using the <changelist>
-property. Like in the Maven CI Friendly Multi Module Dependencies Example.
Whe have the case that we have multiple modules, having the version number streamlined over the modules.
Let's take the following pom.xml in a hotfix 1.3.1 branch:
<version>${revision}${changelist}</version>
<properties>
<revision>1.3.1</revision>
<changelist>-SNAPSHOT</changelist>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
...
<artifactId>dep1</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
Now let's assume the following revisions in the branches:
On hotfix-finish
the hotfix, master and development branch is checked out. When the hotfix and master branch is checked out and a mvn command is performed, we would need changelist=''
passed, that dep1 is pulled without the -SNAPSHOT, because 1.3.0-SNAPSHOT does not exist anymore. But if dev is checked out and a mvn command is issued, we would need to have changelist not changed, to get 1.4.0-SNAPSHOT, because 1.4.0 does not exist yet.
Therefore we would need to support argLine
per branch-type, to cover our use-case. I was thinking about a productionArgLine
, developmentArgLine
, hotfixArgLine
, ....
While writing the previous comment I was also looking into the plugin's code, and we run into the issue does not happen in the mvnXXX
-commands, but already in the getCurrentProjectVersion
-calls. I would need to have a look, if we can avoid the fetching of the deps for those calls. Then it should work (as far as I can see it from the code).
@redeamer Why there is need to use separate changelist
property at all? Can't you just add -SNAPSHOT
to revision
?
@aleksandr-m sorry for my late response, but I was off last week.
This is what we did before, but we streamlined all our projects to use Maven CI friendly versioning with the use of revision
and changelist
for all our projects. So this is unfortunately a settled decision. Otherwise we would switch to do it 'manually'.
I created a local version of the plugin which supports the options changelistProperty
(to override 'changelist' as default), and the values via productionChangelistValue
, developmentChangelistValue
, ... which would add support for the variable changelist
-property, but I am not entirely happy with my current solution, because it messes with the Properties and the argLine to change the values per branch.
If you are generally interested in support of branch based changelist
(and maybe sha1
for completeness) I would created MR with the current solution, to have a base to talk.
@aleksandr-m Opened a PR #315
Is there anything I could do to help getting this feature merged? :)
Hi, first of all, thanks for the awesome work on this plugin.
We currently use gitflow-maven-plugin via CI to perform our hotfix and release start/finish tasks. We switched to use Maven CI friendly versioning, and also use it for our dependencies. This raises the need to set the
changelist
-property to empty for builds done on master/release, but NOT change it for builds on development branches, to make sure the correct dependencies (released/snapshot) are used. Info: our provided maven repository cleans -SNAPSHOT builds, once a release build exists.Would there be a need/want to support this? If yes, I may have time to support with an MR (after details are clarified of course).
regards m