researchgate / gradle-release

gradle-release is a plugin for providing a Maven-like release process for projects using Gradle
MIT License
859 stars 223 forks source link

Releasing a multimodule-project with dependencies on themselves #243

Open thamacher opened 6 years ago

thamacher commented 6 years ago

How can I release a mutlimodule-projects, that have dependencies on each other. Example

root

What happens now is the following error: Execution failed for task ':groupId:sub3:checkSnapshotDependencies'. 12:32:32 > Snapshot dependencies detected: 12:32:32 sub3: [net.researchgate.release.ReleaseExtension_Decorated@1c43b1a2:sub1:0.1-SNAPSHOT, net.researchgate.release.ReleaseExtension_Decorated@7f5c7189:sub2:0.1-SNAPSHOT]

How can I come around this?

Hillkorn commented 6 years ago

The easiest and best way for this is to use the same version on all projects and only apply the release plugin to the root project. This way it changes the version only one time and then builds and uploads all projects at once with their release version. I prefer this way as it's easy to see that versions rely on each other. A drawback is that even without a change you will have a new released version for a project.

thamacher commented 6 years ago

Thanks for this answer. This is exactly how I solved it now and it works totally fine with my requirements. Unfortunately now there is some trouble with the „maven-publish“ plugin, as only 2 of the 4 submodules are published. Do you have any experience with the combination of these 2 plugins?

Hillkorn commented 6 years ago

Not really. We use the maven plugin. I thought about to move to maven-publish but at the moment there is no need for it and maven-publish is still incubating

Did you cheched that the publish tasks are all depending on the afterRelease step of the release plugin? And that the artifacts have been build?

laxika commented 6 years ago

Can any of you post an example configuration for this please?