2013-02-23 60 views
0

我正在使用ejb3並使用arqullian進行測試。 我在pom.xml中如何在運行測試用例時排除Maven依賴關係

<dependency> 
     <groupId>org.glassfish.main.ejb</groupId> 
     <artifactId>javax.ejb</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
    </dependency> 


    <dependency> 
     <groupId>org.jboss.arquillian.junit</groupId> 
     <artifactId>arquillian-junit-container</artifactId> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.arquillian.container</groupId> 
     <artifactId>arquillian-glassfish-embedded-3.1</artifactId> 
     <scope>test</scope> 
    </dependency> 

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

我需要排除前兩個依賴,而我運行測試用例以下的依賴,但它會比測試時可用的其他。

這怎麼能實現呢?

任何幫助,非常感謝。

回答

0

我相信你可以單獨使用javaee-api依賴,因爲你可以從中獲得EJB API。不過,您應該將它指定爲與provided作用域的依賴關係,因爲它不能用於除編譯測試之外的任何其他任何操作,並且在運行時由容器(在本例中爲嵌入式GlassFish)提供。

如果遇到javaee-api問題,可以嘗試使用JBoss Java EE 6 APIs,因爲它們不包含任何剝離的方法體,這些方法體通常是javaee-api依賴性的問題根源。

0

當您擁有Java EE 6時,您需要具備完整的Java EE API,例如Vineet寫入,而不是Java EE本身。對於Java EE 7,javaee-api依賴性足以進行編譯。但是你需要有Java EE API來編譯你的代碼,它必須提供範圍(這意味着Maven使用它進行編譯,但不會將jar添加到歸檔中,因爲容器提供了這些範圍)用於Java EE依賴關係的範圍,並可能刪除EJB的依賴關係。

這裏是JBoss和Java EE的7.我的工作樣品這些依賴足以嵌入容器中運行Arqullian:

<dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.arquillian.junit</groupId> 
     <artifactId>arquillian-junit-container</artifactId> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.wildfly</groupId> 
     <artifactId>wildfly-arquillian-container-embedded</artifactId> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.wildfly</groupId> 
     <artifactId>wildfly-embedded</artifactId> 
     <scope>test</scope> 
    </dependency> 

這裏是Java EE 6層規範的API的依賴管理。我將它用於Arqullian測試而不是javaee-api。

<dependency> 
     <groupId>org.jboss.spec</groupId> 
     <artifactId>jboss-javaee-6.0</artifactId> 
     <version>1.0.0.Final</version> 
     <scope>provided</scope> 
     <type>pom</type> 
    </dependency> 
相關問題