Oxy
Oxy

Reputation: 323

Gradle maven deployer versioning

We are using Gradle + Maven Plugin to upload jar files to our artifact repository using the following piece of code:

uploadArchives {
   repositories {
      mavenDeployer {
         repository(url: <our maven repo URL>) 
         pom.groupId = 'group1'
         pom.version = '???'
         pom.artifactId = 'artifact1'
      }
   }
}

We set a hook in our CI server that triggers the upload with every push to the master Git repository. I have two questions:

  1. Is that a good idea to automatically upload the jar files on a commit? What's the downside?

  2. How can I give the uploaded jars an automatic new version number, like the latest version plus one? Is that possible to list all the availale versions of an artifact from a maven repo?

Upvotes: 2

Views: 390

Answers (1)

Opal
Opal

Reputation: 84756

  1. It's basically not a bad idea however You need to consider how the dependency is specified for the given artifact - e.g. if some backward incompatible changes were introduced other clients of the uploaded artifact may have problems. So specifying the dependency with + may be problematic and manually switching the version after every release could be tiring. It's good idea to work out why you'd like to upload artifact after every build? Maybe consider uploading artifacts only from a certain branch

  2. Every CI server should pass a build number as a env variable (or system property) to the artifact being built. It's good idea to use this number in automatic versioning. It is possible to download the versions from the repository, but it requires additional work to be done. Download maven-metadata.xml (e.g. this one), parse it, get the latest version and you are almost done.

Upvotes: 1

Related Questions