2010-08-02 4 views
4

많은 EJB 종속성을 가진 EAR이 있습니다. 2 개는 glassfish-embedded-all jar에 제공된 범위 종속성을가집니다. 그러나 내 로컬 컴퓨터에 mvn을 설치하거나 응용 프로그램이 hudson에서 maven을 통해 빌드되면 귀에 항상 glassfish가 포함 된 모든 jar 파일이 포함됩니다.제공된 범위를 무시하는 Maven

예컨대 EJB 의존성

<dependency> 
    <groupId>com.xxx.yyy</groupId> 
    <artifactId>DataAccess-ejb</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <type>ejb</type> 
</dependency> 

내가 잘못 또는 가능한 제안을하고있는 중이 야 무엇을 어떤 아이디어와 함께 제공된 종속성

<dependency> 
    <groupId>org.glassfish.extras</groupId> 
    <artifactId>glassfish-embedded-all</artifactId> 
    <version>3.0</version> 
    <scope>provided</scope> 
</dependency> 

응용 프로그램 귀 DATAACCESS - EJB?

건배,

제임스

답변

4

어떤 유물 것은 glassfish-embedded-all.jar 포함되어 분석하기 위해 mvn dependency:tree를 사용해보십시오, 기회는 당신이 뭔가를 내려다하고 있다는입니다. Maven은 직접 종속성 및/또는 전이 종속성을 통해 상속 된 아티팩트를 포함하지 않습니다.

mvn dependency:analyze-only 명령을 실행하여 실제로 필요하지 않은 종속성을 더 정리할 수도 있습니다.

2

provided scope are not transitive과의 종속 관계이므로 전이되지 않으므로 다른 것이 있어야합니다. 귀 모듈에서 mvn dependency:tree을 실행하십시오.

실제로 실제로 왜 provided 범위를 사용하고 있는지 궁금하지만 test 범위가 더 적절하다고 생각합니다. 그런데 GF 3.0.1을 사용하는 것이 좋습니다.

<dependency> 
    <groupId>org.glassfish.extras</groupId> 
    <artifactId>glassfish-embedded-all</artifactId> 
    <version>3.0.1</version> 
    <scope>test</scope> 
</dependency>