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.