spotify / missinglink

Build time tool for detecting link problems in java projects
Apache License 2.0
144 stars 27 forks source link

Needs building before running missing link #31

Closed martina-if closed 9 years ago

martina-if commented 9 years ago

If the project has not been built before missinglink runs it will say "No conflicts Found". This happens for example, after running 'mvn clean' without doing 'compile'.

mattnworb commented 9 years ago

Thanks for the bug report @martina-if. I thought we had this addressed already but I see it doesn't work - I'll look into why that is.

mattnworb commented 9 years ago

One way the maven plugin could deal with this is by telling maven it wants to run in a forked build, like in this commit. As far as I can tell there is no other way for a Maven plugin to specify that it requires another plugin (like the compiler plugin) to be run first.

The forked build thing has some downsides though, in that it runs a bunch of steps for a second time and adds some time to the build (although maybe just 2-3 seconds), so I'm not 100% sure if that is the best solution. @pettermahlen @spkrka do you have any opinions on that?

Perhaps another option is that the plugin could just output a better message if it finds that there is no compiled output in the build folder - output something like did you forget to compile first? rather than no conflicts, and/or make the documentation in the README clearer.

pettermahlen commented 9 years ago

I don't like forked lifecycles, so I would personally prefer the option to notify the user about missing class files. The reason I don't like forked lifecycles is that the same phase gets run multiple times, and that, in my previous experience, has not only added time to the build in a non-transparent way, it has also made things harder to troubleshoot due to the added output.

martina-if commented 9 years ago

I think notifying the user that no class files where found can be enough.