I write this mail with my day job hat on, rather than my Jakarta Commons hat.
I have spent a little while trying to get Maven integrated as the build and deploy system for one of our products at my day job. The product is fairly simple and small, so I thought it wouldn't be too bad to achieve. I was wrong. This is not intended as a flame, but as constructive criticism. I include suggestions for improving Maven in a corporate (rather than OSS) environment. All the below is ref the b10 release. 1) Project xml and Project properties. Maven sells itself as 'wite a project xml and you are done'. But in reality this is not the case. Many parameters are controlled in the project properties, and still others have to be hacked into the maven xml. This is very confusing. The roles of each of these files needs better defining. For example, it would seem more sensible to include the location of the central repository in the project xml file. I'm sure there is a reason why its not, but its not clear. 2) Repository is an over used term The main project xml has a <repository> element. But this is not what you would expect as it does not define details of the central or local repositories. Instead it defines scm. PLEASE rename this element. 3) No mid-level repository A corporate environment wants three levels of repository, not two. The central ibiblio, the local one, and a shared network server in the middle. Releases are made to the shared network server, not ibiblio. I suggest building a middle level repository into the design. I have been forced to set the local repository to be the shared network server, which is fine for single site working, but not for cross site working. I know that you can have multiple remote repositories, but what would happen when I release the code (jar:deploy)? Would it update both? There simply isn't enough clarity. 4) Releases with jars To include the jar files in the output zip files requires a change to maven xml. This seems like a very normal kind of a requirement, but is difficult to achieve. I suggest that the project xml needs a way to define which dependencies to include in the zip. 5) Assumptions from OSS Too much assumes the OSS model, where deployments are via scp/ssh. A corporate environment will use file copies far more often. I suggest that each place where communication takes place should use a uniform definition of communication. For example, at present, I still don't know how deploy the zip files via a file copy. dist:deploy seems determined to talk to ibiblio, which of course fails. The pom:deploy plugin uses one property while site:deploy uses another. I suggest this desparately needs unifying. 6) Maven-propaganda logo. This should not be the default. It caused raised eyebrows in my corporate environment and I had to find the way to change it. (I'm sure you are all aware of the significance of the red star). The maven feather image is much more acceptable to corporate users (and also OSS if you examine jakarta-commons lang/collections/...) 7) Plugin documentation There is lots of documentation in terms of pages, but often very little real information of value. The plugin pages are often very weak. I suggest some redesign is needed. For example, the plugins page lists all the plugins at the top which link to lower down the page before linking to the actual site for the plugin. This is VERY annoying. For example(2), the plugins list includes both very basic functions (java, jar, site, dist, deploy) and many, many others. Trying to work out what you actually need to know is VERY difficult. I suggest breaking out a core set of plugins, at least in terms of documentation. And these core plugins need to be very well documented. 8) Getting started/User guide are too complex The Maven concept isn't that hard really. But the documentation makes it seem hard. A document that says how you should layout your files and what the 5 or 6 basic plugin calls are would make a great difference. It should also link to other docs for more info. At present I can - build a jar (jar) - build and deploy a site (site:deploy) - create the zip files (dist) - and after much, much trouble I can copy the jar to the repository (jar:install) But I still can't - copy the zips to a file location of my choosing - label the CVS - increment the currentVersion property - do a release with a single maven call In the end you start to wonder whether it really benefits you over Ant. Please don't misunderstand me, Maven works well when it works. But it is incredibly fustrating when it doesn't. Stephen --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]