We use maven in a corporate setting and in general it does quite a good job.

There are some aspects that we have problems with (maven-rc1, win2k):

The "plugin" plugin:

We developed a new plugin containing some corporate-specific goals.

I did not understand the semantics of plugin:install and plugin:deploy:
In analogy to "normal projects" and to jar:install and jar:deploy I would
have expected
- plugin:install to install the plugin on my local machine
- plugin:deploy to deploy the plugin in our central repository (on a
different machine, I am normally the only one using my machine) so that
others can download it

But the documentation on
http://maven.apache.org/reference/developers/developer-guide.html describes
quite different semantics, especially there seems to be no way to deploy the
plugin to the central repository?

When invoking plugin:deploy I get a warning that I don't understand (it
seems to be hardcoded into the plugin, ie. it appears every time regardless
of any tests, does that make sense?)
    <echo message="" >
  Warning: Contents of ${maven.home}/plugins/${maven.final.name}.jar does
not match
  the unpacked contents of ${maven.plugin.unpacked.dir}/${maven.final.name}
directory.
    </echo>


Then I found on the website about releasing maven plugins the following
command to deploy a plugin:
maven -DgroupId=maven -Dtype=plugin -Dartifact=/path/to/file
repository:copy-artifact

Okay, I wanted to look up what the goal copy-artifact exactly does (okay,
it's almost clear, but...)
Two issues:
- the plugins on the website
http://maven.apache.org/reference/plugins/optional/optional.html are not
sorted alphabetically (minor)
- the goal "copy-artifact" is not documented (major, because this is quite
annoying for a user who just found what he thinks he needs and then it's not
documented (or for someone who will simply not know about existing
functionalities)


Anyway, I got it working and my plugin deployed.

Then I wanted to download it (on a different machine):
Using plugin:download I was wondering where the downloaded plugin is
installed to.
It took me a while to find out that the plugin successfully downloads but
apparently immediately deletes the downloaded file. After I added a line to
the jelly.xml it worked:

      <delete includeEmptyDirs="true" verbose="false">
        <fileset dir="${maven.plugin.unpacked.dir}">
          <include name="*.cache"/>
          <include name="**/.processed" />
          <include name="${artifactId}-*/**" />
          <exclude name="${artifactId}-${version}.jar" />    <!-- this line
added by oliver -->
        </fileset>
      </delete>



Okay, I finally succeeded, but with just too many obstacles that are not
necessary to my mind (and that might prevent other users from using maven
and/or writing plugins for maven).


Summary:
- what about deploying a plugin and the semantics of the plugin:deploy goal,
do I have a wrong understanding?
- PLEASE keep the documentation in a good and up-to-date state, it just eats
up hours at the moment to find out certain things! (example: how should a
new user find out that he can/should use groupId and artifactId for
dependencies, if almost all the samples on the website contain the old
"id"-only version? See eg. http://maven.apache.org/start/integrate.html)
(especially as maven easily enables you to deploy the sitedoc of a plugin
within the same step that performs the release, I am a bit disappointed
about the quality and up-to-date status of plugins)
- conceptual question: what about site-doc for older versions? Maybe the
docs were not too old but too new, and the goal does not exist any more in
the CVS version, shouldn't there be the old sitedoc for a project available,
too (eg. deployed as another artifact?)
- is the missing exclude-line a bug, should I raise an issue in JIRA for it
(there doesn't exist one yet)




Okay, I hope you take this as constructive criticism, and thanks for all the
work done so far!


Oliver N�lle



--
Oliver N�lle
BMW Car IT GmbH
Munich


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to