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>