Alex Karasulu wrote:
Emmanuel Lecharny wrote:
repositories are moving, plugins are moving, and this could break
everything.
I share your frustration.
...
- I want to build version X with maven plugins that have been used
when I tagged the version X. In two years, I want those plugins to be
available, even if they are full of bugs, just because the build has
been validated when X tag has been created. I don't want ANY plugin
to be updated on the fly. Is it possible ?
I think there is a way for us to do this. Just use specific plugin
versions to stabilize the build wrt plugin variance. This is the root
of the problem.
- I want to build version X with the jars that have been used to
create the version. I don't want to change the pom.xml files just
because the remote repository has disapeared or the server name has
been changed to something different. I don't want that somebody - for
any good or bad reason - has modified a pom.xml of any jar just
because he realized that something were wrong when this jar has been
pushed on the maven repository.
That means we *must* have our own private local repository with all
the jars used by a version tagged and stored on subversion, and that
we *NEVER* download a jar from a remote repository. Remote repository
totally break the notion of reliable build.
Forgive me bro but I disagree with this idea. I just think we're not
using maven properly. Maven has it's issues but overall we're not
tuning our build to make it work consistently with updates to plugins
in the repository. We can do better and have some advice from the
other emails I've seen.
...
Using fixed version plugins may not solve the problem totally. First,
Maven plugins are updated frequently (so _generally_ some issues are
fixed) and lots of plugins have version tag ALPHA (well, I am not sure
what this means for maven). Second, I am not sure, when you use a fix
version plugin, whether its transitive dependencies are all non-snapshot
versions or not.
And one another issue maven is that other than breaking the build the
behavior of plugins are changed overtime, like the site plugin (see the
directory project home page title).
Those two conditions are mandatory. If one of them is missing, then
we should push a request to maven to fix something. If it's not
possible before we release ADS 1.0, then we may consider switching to
another build tool.
I'm open to other tools but only after we have grasped the use of the
current build tool's features better. I don't think we've done that
(speaking more for myself). Also what's scary is I'm perhaps one of
the most Maven savvy on this team besides Brett Porter.
*wish* :)
I really wish Brett had the time to step in and show us some tricks to
help fix these problems (hint hint).
...
- Surfire should be improved to store errors in a separate directory
than success. When you have something like dozens tests in a
directory, this is painfull to check all of them to know which ones
have failed (but this is a maven issue, not an apacheds problem ;)
I totally agree, this is one of my biggest issues with this plugin.
Alex
--
Ersin