Hi Everyone,

I'm attempting to exclude transitive dependencies from being put into my
WEB-INF/lib folder, inside of a profile, but it's not working.

Basically, I have an RMI module and a WEB module.  The WEB module depends on
the RMI module.  In development I want the RMI to run in process, rather
than bind to an rmiregistry.  In order to do this, I omit the "client"
classifier.  But, in production, I use a profile to use the client
classifier.

The main project has the following dependency...
     <dependency>
      <groupId>ca.athabascau.banner.oros</groupId>
      <artifactId>rmi</artifactId>
      <version>1.1.23-SNAPSHOT</version>
      <scope>provided</scope>
     </dependency>

Not that I am not using the client classifier, but I'm using the "provided"
scope so that it won't suck down the dependency just yet.

I have a pom profile like the following, that I use for development with in
process RMI.
  <profiles>
    <profile>
      <!-- use full rmi when doing development, even if inproc server -->
      <id>inproc</id>
      <build>
        <resources>
          <!-- Copy configurations over to webapp folder -->
          <resource>
            <filtering>true</filtering>
            <directory>${basedir}/src/main/resources</directory>
          </resource>
        </resources>
      </build>
      <dependencies>
        <dependency>
          <groupId>ca.athabascau.banner.oros</groupId>
          <artifactId>rmi</artifactId>
          <version>1.1.23-SNAPSHOT</version>
          <scope>compile</scope>
        </dependency>
      </dependencies>
    </profile>

I have the following client based profile that uses the "client" RMI
dependency, but excludes all of it's dependencies because they are meant for
the RMI server side...
    <profile>
      <!-- use client rmi only when client profile specified -->
      <id>client</id>
      <dependencies>
        <dependency>
          <groupId>ca.athabascau.banner.oros</groupId>
          <artifactId>rmi</artifactId>
          <version>1.1.23-SNAPSHOT</version>
          <scope>compile</scope>
          <classifier>client</classifier>
          <exclusions>
            <exclusion>
              <groupId>ca.athabascau</groupId>
              <artifactId>moneris-test</artifactId>
            </exclusion>
            <exclusion>
              <groupId>com.oracle.ojdbc</groupId>
              <artifactId>ojdbc14</artifactId>
            </exclusion>
            <exclusion>
              <groupId>com.novell</groupId>
              <artifactId>java-ldap</artifactId>
            </exclusion>
            <exclusion>
              <groupId>commons-dbcp</groupId>
              <artifactId>commons-dbcp</artifactId>
            </exclusion>
            <exclusion>
              <groupId>commons-collections</groupId>
              <artifactId>commons-collections</artifactId>
            </exclusion>
            <exclusion>
              <groupId>commons-pool</groupId>
              <artifactId>commons-pool</artifactId>
            </exclusion>
            <exclusion>
              <groupId>cas</groupId>
              <artifactId>casclient</artifactId>
            </exclusion>
            <exclusion>
              <groupId>xerces</groupId>
              <artifactId>xercesImpl</artifactId>
            </exclusion>
            <exclusion>
              <groupId>oro</groupId>
              <artifactId>oro</artifactId>
            </exclusion>
            <exclusion>
              <groupId>xml-apis</groupId>
              <artifactId>xml-apis</artifactId>
            </exclusion>
            <exclusion>
              <groupId>javax.activation</groupId>
              <artifactId>activation</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
      </dependencies>
    </profile>

Basically what happens is that all the dependencies get sucked down anyhow,
even though they are excluded.

I thought I had this working at one point, but now it doesn't seem to be, so
I'm really confused.  Any ideas?

Thanks.

Reply via email to