依賴

2013-03-27 48 views
1

的Maven的測試依賴我有與範圍測試依賴

<dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-firefox-driver</artifactId> 
     <version>2.31.0</version> 
     <scope>test</scope> 
    </dependency> 

現在我「MVN安裝」編父項目,依賴父項目時,我有這個父項目爲我的孩子依賴性項目

<dependency> 
     <groupId>group</groupId> 
     <artifactId>parentproject</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 

selenium-firefox-driver不可用。 編譯有作用域的依賴關係可用。

我該如何使它可用?我不會在父項目和子項目中更改範圍。因爲我需要在運行時父級的一些類

回答

3

您應該將父項目作爲子項目的parent,而不是將父項目作爲依賴項包含在子項目中。

<parent> 
    <groupId>group</groupId> 
    <artifactId>parentproject</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
</parent> 

否則你不能稱之爲parent project

2

正如他的回答概述了Charlee酒店Chitsuk,你的範圍(編譯子項目)將省略測試包含的項目依賴。

一個乾淨的解決方案是將項目的擔憂分成兩個單獨的項目:用該項目包括測試的依賴(如selenium-firefox-driver)編譯範圍:

  • 父測試。另外,這個項目包含你所有的通用測試資源,例如JUnit基類,在src/main/java
  • 父母業務:該項目僅包含父項目的業務功能。包括parent-test這裏test範圍。

在你的孩子的項目,您現在可以parent-test與範圍測試爲好,讓您訪問其資源與正確的範圍。

此設置將提供清晰的項目結構,並提供清晰的範圍界定,避免您提到的問題。是的,由於額外的項目,它會更復雜一點,但它也更加清潔。