My team is using feature branches to implement new features and continuously deploys snapshot builds into a remote repo for our users to use. Thus 'deploy' really only means 'distributing to a remote Maven repository'. We're currently only running continuous integration builds for the master branch and not the feature branches for the following reason: we're using Maven to build our projects and distribute the JavaDoc and sources alongside the JAR.
My plan was now to add a classifier to each feature branches build and expected that one to be used when creating and deploying the artifacts like this:
- Branch: master
- Classifier: none
Artifacts:
foo-${version}
.jar,foo-${version}-sources
.jar,foo-${version}-javadoc.jar
Branch: feature-X
- Classifier: myfeature
- Artifacts:
foo-${version}-feature.jar
,foo-${version}-sources-feature.jar
,foo-${version}-javadoc-feature.jar
I don't really care about the exact naming of the artifact, I just need separate main, source and JavaDoc artifacts for the feature branch. It turns out, neither the JavaDoc plugin nor the source plugin consider the classifier configured and thus effectively overwrite the artifacts created for my master build.
I don't really want to change the artifactId although this would probably solve the issue. How do you approach feature branches and continuous integration with Maven?