maven-amp-plugin not supported by IDEs

9 views
Skip to first unread message

Bindu Wavell

unread,
May 9, 2013, 1:17:14 AM5/9/13
to maven-a...@googlegroups.com
As far as I can tell the alfresco-maven-plugin is not supported by Eclipse or IntelliJ. In order to work with projects that have this plugin the IDE has to be configured to shell out to maven to do building... rather than using all of the incremental compiling and deploying goodness that's baked into the IDEs. Am I missing something?

Based on my curent understanding of this issue, I have created a new project structure that is similar to the allinone archetype (I started from allinone.) I think I'm trying to solve a slightly different problem than allinone though. Specifically I want a project that will work well as a starting point for folks developing against alfresco and share using and IDE. Following is an overview of my project structure:

parent:pom
    alfrescomodule:jar
    alfrescoamp:war -> produces a war and makes a copy with .amp instead of .war as the extension
    alfresco:war
    sharemodule:jar
    shareamp:war -> produces a war and makes a copy with .amp instead of .war as the extension
    share:war
    solr:pom

I don't have a runner as I want to use tomcat from within the IDE. I have seperate tomcat instances for alfresco, share and solr so they can be stopped and started independently. I also haven't worked on getting unit tests to work at all in this structure. By using the standard jar and war packaging IntelliJ and STS (Eclipse) are able to handle the projects themselves rather than shelling out to maven. As a result I can make a change to something in alfresco and restart tomcat in about 1 minute vs. the 3-4 minutes it takes using the allinone structure. A change to share takes about 30 seconds instead of that same 3-4 minutes it would have taken with allinone.

I recently discovered that we could configure jetty to poll for changes to an exploded war structure and it would deploy changes automatically, that might be a good way to get reasonable development turn-around with the allinone project. I gave this a quick shot and it didn't work but I suspect that was for different reasons. Has anyone gotten this to work, is it an efficient way of ding alfresco/share development work?

With my project I am able to turn use JRebel in a completely standard way (no jrebel.xml customizations, just take the default ones they generate) and I'm able to do hot deployments of most things including adding/updating beans, adding methods, adding/changing proeprties, changing method signatures, adding classes, etc without restarting at all. The sense of flow compared to what we've dealt with in the past is AMAZING :) Realistically the time from making a change to seeing it reflected in the Alfresco/Share UI is about 15 seconds. There are also ways of kicking alfresco to refresh certain config files after they are hot deployed. I've started to build a catalogue of information on this... My thinking is that I'd like to have devmodules (alfresco and share) that include helpers for doing this sort of hot resource refreshing and for providing tools like the javascript console (which I have embedded in the amps described above already, but I want to move it.) I plan to add samples of lots of different kinds of alfresco customizations to the these alfresco and share customizations and then to create barebones versions of both the alfresco and share modules/amps that can be mixed in as starting points for real customizations...

If anyone has any feedback, suggestions, etc I'd love to hear what folks think... If folks have figured out better ways of doing this, I'd love to hear about that too!

Thanks so much for reading my long post :)


-- Bindu
Reply all
Reply to author
Forward
0 new messages