I think our build is still perhaps more unwieldy than it needs to be.  I wonder 
if using the pom import scope more would help:

1. put some large sets of dependencies in dependency management such as in 
particular specs into separate "management only" poms 

2. put versions of all the subprojects into dependency management of plugin 
poms... e.g. for connector_1.6 something like

    <dependencyManagement>
        <dependencies>

            <!-- imports of other plugins -->
            <dependency>
                <groupId>org.apache.geronimo.framework</groupId>
                <artifactId>framework</artifactId>
                <version>${version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.plugins</groupId>
                <artifactId>j2ee</artifactId>
                <version>${version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- internal dependencies -->
            <dependency>
                <groupId>org.apache.geronimo.configs</groupId>
                <artifactId>client-transaction-1_6</artifactId>
                <version>${version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.configs</groupId>
                <artifactId>connector-deployer-1_6</artifactId>
                <version>${version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.configs</groupId>
                <artifactId>transaction-1_6</artifactId>
                <version>${version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.modules</groupId>
                <artifactId>geronimo-connector-1_6</artifactId>
                <version>${version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.modules</groupId>
                <artifactId>geronimo-connector-builder-1_6</artifactId>
                <version>${version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.modules</groupId>
                <artifactId>geronimo-transaction-1_6</artifactId>
                <version>${version}</version>
            </dependency>
            <!-- external dependencies -->
            <dependency>
                <groupId>org.tranql</groupId>
                <artifactId>tranql-connector</artifactId>
                <version>1.6-SNAPSHOT</version>
            </dependency>

            <dependency>
                <groupId>org.apache.aries.transaction</groupId>
                <artifactId>org.apache.aries.transaction.blueprint</artifactId>
                <version>0.1-incubating-SNAPSHOT</version>
            </dependency>
        </dependencies>
    </dependencyManagement>


I think this makes the build more modular, makes clearer the relationships 
between plugins, and would be needed anyway should we decide to release plugins 
separately.

What do other people think?

thanks
david jencks



Reply via email to