git-commit-id / git-commit-id-maven-plugin

Maven plugin which includes build-time git repository information into an POJO / *.properties). Make your apps tell you which version exactly they were built from! Priceless in large distributed deployments... :-)
http://www.kto.so
GNU Lesser General Public License v3.0
1.62k stars 299 forks source link

Using git commit hash with Artifactory Maven Plugin #594

Closed artespoon closed 7 months ago

artespoon commented 2 years ago

Description

I would like to add git commit hash as a suffix to my jar file using git-commit-id-maven-plugin and then deploy it to artifactory using artifactory-maven-plugin.

I'm able to produce a local jar file with a git commit hash in the target folder. But when I run mvn deploy it gets published to artifactory with the default version (no git commit hash).

I tried to follow solution mentioned in the FAQ, but don't know if this workaround can be used for artifactory maven plugin.

Expected behavior

I would like to be able to publish to artifactory jar file with version and git commit hash.

Additional context

TheSnoozer commented 7 months ago

Hello, thanks for creating this ticket! Indeed reading up on this again I see the following https://github.com/git-commit-id/git-commit-id-maven-plugin/blob/master/docs/faq.md#generated-properties-are-not-being-used-in-install-andor-deploy

This specific behaviour is basically not intended / not supported by maven-install-plugin and/or maven-deploy-plugin (https://issues.apache.org/jira/browse/MINSTALL-1 / https://issues.apache.org/jira/browse/MDEPLOY-93). The naming format in the remote repo seems to be always $artifactId-$version-$classifier by default and thus any generated property will not end up inside the artifact being installed/deployed.

the initial workaround was suggested in https://github.com/git-commit-id/git-commit-id-maven-plugin/issues/256#issuecomment-321476196

And in a nutshell you disable the default install/deploy and replace it with a custom version (the one that deploys your custom version.

For full reference here is a full project that demonstrates the behaviour. example-594.zip

Depending on the target location where you deploy the file to you might need add an extra dependency (as outlined in https://maven.apache.org/plugins/maven-site-plugin/examples/adding-deploy-protocol.html). Supported protocols are mentioned in https://maven.apache.org/wagon/.

However I need to stress that this might not be something fully supported or intended by the maven eco-system. So use this at your own risk. I will also not provide further support on this matter.