[seam-dev] module project anatomy

John Casey jcasey at redhat.com
Tue Apr 13 10:21:28 EDT 2010


I'd definitely recommend using a distribution module in your project 
hierarchy...just another module in the project directory, which depends 
on everything you want to bundle together. Using <dependencySets/> in 
the assembly plugin is MUCH less quirky than using <moduleSets/>.

If you'd like an example, check out Maven itself:

http://svn.apache.org/repos/asf/maven/maven-2/tags/maven-2.2.1/

-john

On 4/13/10 9:23 AM, Pete Muir wrote:
> Hi Paul and John
>
> We are using the assembly plugin to create a zip distribution of our project. Currently we have it set up so that the assembly is part of the parent POM (as the Maven book suggests) but we are wondering about having it as a separate priject (as the Maven guide suggests). What is your recommendations?
>
>
> Shane also has some outstanding issues with assembly that we are hoping you can help with - Shane, can you write them up?
>
> Thanks all
>
>
> On 12 Apr 2010, at 12:37, Pete Muir wrote:
>
>> I agree, I would strongly recommend using a separate project for the distribution like that guide suggests...
>>
>> On 11 Apr 2010, at 04:29, Jordan Ganoff wrote:
>>
>>> Dan,
>>>
>>> While restructuring the JMS module I ran into a maven assembly issue.  I couldn't get a dependent library jar into the assembly because it wasn't depended on from my parent pom.  The seam-jms-impl depends on weld-extensions but there's no reason to include the dependency generally in seam-jms-parent as no other modules need it.
>>>
>>> Here's an excerpt from assembly.xml:
>>>
>>>    <dependencySets>
>>>       <dependencySet>
>>>          <outputDirectory>seam-jms/lib</outputDirectory>
>>>          <useProjectArtifact>false</useProjectArtifact>
>>>          <includes>
>>>             <include>org.jboss.weld:weld-extensions</include>
>>>          </includes>
>>>       </dependencySet>
>>>    </dependencySets>
>>>
>>> Since the assembly is defined in seam-jms-parent I get this warning when building the assembly:
>>>
>>> [WARNING] The following patterns were never triggered in this artifact inclusion filter:
>>> o  'org.jboss.weld:weld-extensions'
>>>
>>> After doing some research[1] I found that for more complex assemblies a separate project solely responsible for building the assembly is used where special dependencies such as this can be defined.  I'm no Maven expert so I wanted to bring this up and see what you guys think about it.  I could just say the hell with it and just include this dependency in seam-jms-parent since this is a small multi-module project...
>>>
>>> What do you think?
>>>
>>> [1]: http://maven.apache.org/plugins/maven-assembly-plugin/faq.html#module-binaries  Describes how using a separate assembly project can relieve the issues with assembling multi-module projects.  See topic "The Assembly Plugin is saying it cannot find files for the module binaries included by my assembly descriptor. What gives?".
>>>
>>> --
>>> Jordan
>>>
>>> On Fri, Apr 9, 2010 at 11:07 AM, Pete Muir<pmuir at redhat.com>  wrote:
>>> These are all excellent guides - good work Dan and co!
>>>
>>> On 7 Apr 2010, at 04:34, Dan Allen wrote:
>>>
>>>> On Tue, Apr 6, 2010 at 7:50 PM, Dan Allen<dan.j.allen at gmail.com>  wrote:
>>>> As promised, I have put together a page detailing the anatomy of a module project in Seam 3. Please consider this a draft document and feel free to provide feedback if there's something that doesn't seem agreeable to you. Also, if you think there is an important detail missing, or an inconsistency appears over time, please let us know.
>>>>
>>>> http://seamframework.org/Seam3/ModuleAnatomy
>>>>
>>>> Keep in mind that there are many different ways we could structure the modules. What is important is that the structure is reasonable and that it is consistent across modules. Contributors should be able to comfortable move between modules and be familiar with how the code is setup.
>>>>
>>>> As promised, I also completed the module release procedure document. This describe everything from picking a version to writing the blog entry announcing your release. We'll see how well it holds up when we put it to the test on the next release. So please, if there is anything I overlooked, or you have a better way of explaining it, please let me know.
>>>>
>>>> http://seamframework.org/Seam3/ModuleReleaseProcedure
>>>>
>>>> Now, there is a handbook for Module Leads:
>>>>
>>>> http://seamframework.org/Seam3/ModuleHandbook
>>>>
>>>> :)
>>>>
>>>> If there is something else you want to know, just let us know ;)
>>>>
>>>> -Dan
>>>>
>>>> --
>>>> Dan Allen
>>>> Senior Software Engineer, Red Hat | Author of Seam in Action
>>>> Registered Linux User #231597
>>>>
>>>> http://mojavelinux.com
>>>> http://mojavelinux.com/seaminaction
>>>> http://www.google.com/profiles/dan.j.allen
>>>> _______________________________________________
>>>> seam-dev mailing list
>>>> seam-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>>
>>>
>>> _______________________________________________
>>> seam-dev mailing list
>>> seam-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>> _______________________________________________
>>> seam-dev mailing list
>>> seam-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>
>>
>> _______________________________________________
>> seam-dev mailing list
>> seam-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/seam-dev
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: jcasey.vcf
Type: text/x-vcard
Size: 235 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/seam-dev/attachments/20100413/8e45f1fd/attachment-0001.vcf 


More information about the seam-dev mailing list