danielflower / multi-module-maven-release-plugin

A maven release plugin that is fast, does not add extra commits, and works well with single or multiple modules
http://danielflower.github.io/multi-module-maven-release-plugin/index.html
MIT License
125 stars 64 forks source link

Options for allowing SNAPSHOT deps/parents/plugins #18

Closed rjenkinsjr closed 6 years ago

rjenkinsjr commented 8 years ago

I'm looking to use this plugin to release a project I'm working on, but I have to rely upon a SNAPSHOT dependency for reasons outside of my control. This PR adds Boolean options allowing any deps/parents/plugins in the release reactor to have SNAPSHOT versions, as well as list options for specifying only certain deps/parents/plugins that can be SNAPSHOTs. The Booleans override the lists.

  1. Version bumped to 1.5.0, since this adds functionality in a backward-compatible manner.
  2. I added 6 new test projects, one for each option. There's also a 7th test project which produces a no-op Maven plugin. Feedback welcome on my testing approach; not sure if there's a way to condense the projects.
  3. I'm not sure how to better differentiate the names of the Boolean options vs. the list options. Right now there's only a 2-letter difference between them, and I suspect that could be confusing to users. Any suggestions?
danielflower commented 8 years ago

Hi, thanks for the PR. I'm a bit apprehensive about maintaining this though as it's quite a lot of code for what I think is an edge case. Are you okay just using your fork? If releasing things with snapshot references is needed by lots of people then fine.

For what it's worth, the testing approach looked good. I was kind of experimenting on a good way to test maven plugins when I created the test projects. The only issue which I'm sure you noticed is that all the tests take a long time to run.

rjenkinsjr commented 8 years ago

I don't know how often people would need this functionality, but given that the official Maven Release Plugin has a switch for allowing SNAPSHOT dependencies, I figured it makes sense for this plugin to have it as well. I only need SNAPSHOT dependencies, but since the current plugin logic handles parents and plugins separately, I added those options for completeness.

Yeah, the tests do take a while, but it's definitely better than nothing!

rjenkinsjr commented 8 years ago

Have you given any more thought to this PR? I can continue using my fork but I'd rather not use a SNAPSHOT plugin and a SNAPSHOT dependency in my project. No, the oddity of that statement with respect to this PR is not lost on me. :)

Since I only need the functionality for handling dependencies, would you be willing to merge this if I took out the functionality for handling parents and/or plugins?

JanecekPetr commented 7 years ago

Yes, please :(.