Hi 陈思淼,
I'm not a Maven developer but I did a custom packaging. You have to
follow these steps :
- Create a plugin (mojo) project
- In this plugin project, define your plugins, with their goals. For
example, one of them could be jcar-compile
- In the src/main/resources of your plugin, create the folder
META-INF/plexus/
- In this folder, create a file components.xml
- In this file, you can add directives to the Plexus container. The
syntax is nearly the same used in Avalon, if you ever used Avalon or
Cocoon 2.1 you should be familiar with it.
- In our case, you can declare which phases are required for your custom
packaging type, and the binding between phases and plugins (either the
default one and your custom).
- You can find the components.xml for my custom packaging here
http://svn.apache.org/repos/asf/labs/magma/trunk/maven-magma-plugin/src/main/resources/META-INF/plexus/components.xml
... In my case my packaging name is "magma"
... As you can see, i customized compilem, test-compile and test phases
- In projects packaged with you custom packages you have to :
... Set <packaging> to your packaging name
... Include you plugin in the plugins section of the pom, specifying
<extensions>true</extensions>
... You can find an example of a package using my custom packaging here
http://svn.apache.org/repos/asf/labs/magma/trunk/foundation-basics/pom.xml
...... Maybe this last step could be avoidable somehow? maybe using some
naming convention?

At this point, install your plugin, and try to install an artifact using
your custom packaging.

I'm pretty sure I forgot something important, but this should at least
give you a starting point.

Unfortunately I cannot remember where I found this informations, but
there is a guide somewhere on the Maven site.

Hope this helps,
Simone



陈思淼 wrote:
> I want to define a new packaging type called jcar to package my own project.
> I traced the source core of maven and that the Maven-core will look up for
> componentManagerManager by the key
> "org.apache.maven.lifecycle.mapping.LifecycleMapping"+packaging_type,
> Im sure the default packaging type "jar,ear,rar" for example, have
> registered to the PlexusContainer. but I don't know how and when to
> registered that LifecycleMapping componentManager to the container? and how
> I can I do it myself?
> Is there Maven plugin developer can tell me some detail about this?
> Thank you very Much.
>
>   


-- 
Simone Gianni            CEO Semeru s.r.l.           Apache Committer
MALE human being programming a computer   http://www.simonegianni.it/


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

Reply via email to