Hi,

I habe a problem with transitive dependencies when a project depends on a 
ejb artifact (ejb-client). My system consists of a client application 
(i.e. a rich client) which uses a ejb server application. The ejb server 
application needs some other artifacts for the server side processing 
(i.e. a DB access library). The client needs nothing else than the 
client-jar of the ejb artifact. My project structure with some pom.xml 
snippets looks as follows:

myclient
 <artifactId>myclient</artifactId>
 <dependencies>
  <dependency>
   <artifactId>myserver-ejb</artifactId>
   <type>ejb-client</type>
  </dependency>
 </dependencies>
 
myserver
 myserver-ear
  <artifactId>pv-ear</artifactId> 
  <packaging>ear</packaging> 
 myserver-ejb
  <artifactId>myserver-ejb</artifactId>
  <packaging>ejb</packaging>
  <dependencies>
   <dependency>
    <artifactId>my-db-lib</artifactId>
   </dependency>
  </dependencies>

It works almos fine. My problem is that the the client application 
(myclient) does not only inherit the ejb-client-jar of the server project. 
It inherits also the dependencies which are only used for server side 
processing (my-db-lib). Is there a way to suppress this dependeny 
inheritation (i.e. by setting a special scope on the my-db-lib 
dependency)?

Setting the scope of the "my-db-lib" dependency to "provided" did not work 
because the dependency was also excluded from the generated ear file. 

The only way, i got it to work was by adding a exclusion to the client's 
pom.xml:
<artifactId>myclient</artifactId>
<dependency>
 <artifactId>myserver-ejb</artifactId>
 <type>ejb-client</type>
  <exclusions>
   <exclusion>
     <artifactId>my-db-lib</artifactId>
   </exclusion>
 </exclusions> 
</dependency>
 
I don't like this solution because i have to change the client's pom every 
time i add a internal library to the server project. Isn't there another 
solution for controlling the exported dependencies of a ejb artifact?

Thanks for your help.

Regards, Matthias

--
Matthias Germann
DV Bern AG

mailto:[EMAIL PROTECTED]
http://www.dvbern.ch

Postadresse: Nussbaumstrasse 21, Postfach 106, 3000 Bern 22
Direktwahl: +41 31 378 24 60
Telefonzentrale: +41 31 378 24 24, Telefax: +41 31 378 24 74

Reply via email to