One significant difference is that an archetype gives you a starter
application, but really knows nothing about your application. A mojo
can be run at different points of the maven lifecycle, but doesn't know
much about the app it's being run on. It's up to the mojo writer to
turn the collection of classes and resources into meaningful pieces of
an application.
I can't speak for rails, but I know Grails actually is aware of your
data and has a much richer model. Grails can apply a template per each
entity or database table in your application. Maven, as of 2.2 (haven't
looked at 3.0 yet), has no idea what your domain is.
For example, if you wanted to create a plugin that generated a CRUD app
per each entity in your application, your Maven2 mojo would have to
start from scratch and determine what your entities are. It is my
understanding that Grails plugins have convenient hooks to that data,
controllers, service, etc (although someone who has actually written a
Grails plugin before would be a better source of details on the subject).
On 02/05/2010 06:06 PM, Arbi Sookazian wrote:
That's interesting.
The Basics of Creating Rails Plugins
A Rails plugin is either an extension or a modification of the core
framework. Plugins provide:
* a way for developers to share bleeding-edge ideas without
hurting the stable code base
* a segmented architecture so that units of code can be fixed or
updated on their own release schedule
* an outlet for the core developers so that they don’t have to
include every cool new feature under the sun
http://guides.rubyonrails.org/plugins.html
Sounds like CDI PEs (portable extensions) was a ripoff of this
idea... And wasn't seam-gen alarmingly similar to Grails in terms of
quick project setup/startup?
PE is strikingly similar to Rails plugins based on the above
description when you think of Seam 3 having Weld as its new core and
the "extras" like jBPM integration, remoting, iText, PDF, Excel, etc.
Maven 2 already has the concept of MOJO (Maven POJO) and plugins:
http://maven.apache.org/guides/plugin/guide-java-plugin-development.html
Not sure what added-value you're suggesting??
On Fri, Feb 5, 2010 at 2:34 PM, Piotr Steininger
<piotr.steininger(a)gmail.com <mailto:piotr.steininger@gmail.com>> wrote:
I totally agree. Weld archetypes are probably the best polished
ones I have ever seen. They remind me of some of the Rails
semantics (get up and running in minutes).
These similarities got me thinking about another aspect of Rails -
Plugins or gems (which I think is a mixed bag). The promise of
plugins/gems is that you can quickly add dependent code and do
some setup in minutes as well. I think that maven could very well
be a platform to do the same. Currently one has to add
dependencies by hand and quite often tweak the exclusions. With
the introduction of maven console plugin, I think the door became
open to create maven plugins/console scripts to make this a more
automated process.
I don't have the expertise to create a prototype. I also don't
know if this is really something that could be useful in the
community (or simply serve as a tool for Maven newbies).
In any case, I wanted to see what the community thinks about this.
On Fri, Feb 5, 2010 at 5:06 PM, Dan Allen <dan.j.allen(a)gmail.com
<mailto:dan.j.allen@gmail.com>> wrote:
The Weld archetype initiative has had a further reaching
impact than just the community of developers interested in
using CDI (via Weld). A recent blog entry on Sonatype cites
the Weld archetypes as "the perfect case study of how using
Archetypes benefits the community." Steven is acknowledged for
his effort to identify the need of archetypes and ultimately
get them promoted to Maven central for all to use.
http://www.sonatype.com/people/2010/01/maven-archetypes-and-nexus-there-i...
Although archetypes are rather technically simple, it's
important to recognize the impact they can have by starting
people off on the right foot.
-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
_______________________________________________
weld-dev mailing list
weld-dev(a)lists.jboss.org <mailto:weld-dev@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/weld-dev
_______________________________________________
weld-dev mailing list
weld-dev(a)lists.jboss.org <mailto:weld-dev@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/weld-dev