Enterprise Repository Architecture and Release Process
------------------------------------------------------

                 Key: MNG-3447
                 URL: http://jira.codehaus.org/browse/MNG-3447
             Project: Maven 2
          Issue Type: Wish
          Components: Design, Patterns & Best Practices
            Reporter: sachin kamdar
            Priority: Minor


We implemented Maven last year in our Organization, overall we are satisfied 
with the tool however, as we migrate more and more applications to Maven we are 
facing some daunting challenges. We have roughly 500 maven projects for 150 odd 
applications (ears), using the concept of Super POMS and Dependency Management 
to create a layer of abstraction for commonly used artifacts, plugins and 
properties
 
However, despite of this abstraction we still have fairly deep dependency 
graph. And since we have component base Application Architecture the impact of 
a change in common, low level component which is not managed from Super Pom is 
huge. A change in the low level pom means we have to change entire pom 
hierarchies. In some cases it means changing upto 400 pom files. This issue has 
now become so contentious that we have created a Project to re-structure and 
re-architect Maven.
 
As far as our Release Cycle goes, we release in test environment from which we 
go through the bug fixing cycle, once all the bugs are fixed then the artifacts 
are pushed into pre-prod and prod. Now because the artifact is released into 
Test envt, any code change for bug fixes will force a pom version change. This 
will trigger a change in the entire project hierarchy from core->ejb->war->ear. 
As a result our release cycles have become really slow. We are looking at 
options to reduce a) the impact of change in the low level artifact and b) 
ability to release quickly.
 
We looked at version ranges as an options but it would only partly solved the 
problem, as we still get pinned versions into manifest files. Other alternative 
was to release snapshots into Test Environment. Only pitfall with this option 
is that once the bug fixing cycle is over we'll have to release and build 
again. This, at present is against our company policy but personally I don't 
see any fuss with it
 
 I was wondering if anyone has any recommendations for,
 
 1. What is the recommended Maven Repository Architecture for Organizations 
with Application Architecture such as ours
 2. Is there a 'best practice' for Releasing Maven Enterprise projects. (from 
dev->test->pre->prod->prod)
 3. Is there a Dependency Graph type of tool (not like site - dependencies 
report) which can display 'what depends on me' for each and every artifact in 
the hierarchy?
 
We use WebSphere on Linux and most of our projects have 
ear-->wars-->ejbs-->cores type of structure. We also have whole heap of 
business services deployed as ear-->ejb-->core, which gets used by other 
application.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to