I am looking for a way to centrally manage and administer a single project dependency 
that consists of multiple artifacts. 

The problem is that in custom applications the dependency set quickly grows out of 
control when multiple projects are created. For instance, when you want to add a 
struts 1.1 dependency to your project.xml, you are looking at at least 16 dependency 
entries, 10 jars and 6 TLD. Sample shown at the bottom of the email.

Verifying that these dependencies are all used correctly in all projects is very 
painful indeed and upgrading all struts 1.1 projects to release 1.2 of struts requires 
expensive manual reconfiguration.

One solution might be to realize this using a custom plugin, but this obfuscates the 
explicit dependency declarations as found in the project file. Another solution might 
be that the project declares a dependency on a POM causing maven to recursively 
include the stated dependencies into the project. for example:

    <dependency>
        <groupId>struts</groupId>
        <artifactId>struts</artifactId>
        <version>1.1</version>
        <type>pom</type>
    </dependency>


Does anybody have an elegant solution to this problem? 

Cheers,

Mark

        <!-- dependencies for struts, containing 16 entries 
             Example working with a custom maven struts repository entry.
          -->
        <dependency>
                <groupId>struts</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.1</version>
                <type>jar</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>commons-collections</artifactId>
                <version>1.1</version>
                <type>jar</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>commons-digester</artifactId>
                <version>1.1</version>
                <type>jar</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.1</version>
                <type>jar</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>commons-lang</artifactId>
                <version>1.1</version>
                <type>jar</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.1</version>
                <type>jar</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>commons-validator</artifactId>
                <version>1.1</version>
                <type>jar</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>jakarta-oro</artifactId>
                <version>1.1</version>
                <type>jar</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>struts-legacy</artifactId>
                <version>1.1</version>
                <type>jar</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>struts</artifactId>
                <version>1.1</version>
                <type>jar</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>struts-bean</artifactId>
                <version>1.1</version>
                <type>tld</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>struts-html</artifactId>
                <version>1.1</version>
                <type>tld</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>struts-logic</artifactId>
                <version>1.1</version>
                <type>tld</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>struts-nested</artifactId>
                <version>1.1</version>
                <type>tld</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>struts-template</artifactId>
                <version>1.1</version>
                <type>tld</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        <dependency>
                <groupId>struts</groupId>
                <artifactId>struts-tiles</artifactId>
                <version>1.1</version>
                <type>tld</type>
                <properties
                        <war.bundle>true</war.bundle>
                </properties>
        </dependency>
        

Reply via email to