2012-02-14 225 views
4

我在Netbeans 7.1 IDE中有一個Maven項目。NetBeans中的Maven項目:如何向「依賴關係」和「測試依賴關係」添加依賴關係?

我想添加相同的依賴關係到DependenciesTest Dependencies

將其添加到另一箇中。

複製在pom.xml中的依賴,包括在其中的一個:

<scope>test</scope> 

..doesn't工作無論是。

幫助!

更多詳細信息:

假設我有項目MyProjectMyDependency

MyProject包含MyDependency作爲默認範圍(即compile範圍)依賴性:

<dependencies> 
      <dependency> 
        <groupId>my.group.id</groupId> 
        <artifactId>AnArtifactId</artifactId> 
        <version>1.0-SNAPSHOT</version> 
      </dependency> 
</dependencies> 

MyProject包含內MyDependency包幾類在Source Packages文件夾(即MyProject/src/main/...),其引用類。這些工作完美; Netbeans顯示沒有紅色錯誤標誌,並且這些類成功編譯。

MyProject包含內MyDependency測試包幾類在Test Packages文件夾(即MyProject/src/test/...),其引用類。對於這些引用,Netbeans在MyProject中顯示紅色錯誤標誌。

MyDependency已使用mvn clean install -DskipTests進行清理,構建並存儲在本地Maven回購協議中。對MyProject運行相同的命令只會導致測試類中的錯誤;非測試類可以很好地編譯。

回答

2

我發現,解決辦法是複製POM依賴項如下:

<dependencies> 
      <dependency> 
        <groupId>my.group.id</groupId> 
        <artifactId>AnArtifactId</artifactId> 
        <version>1.0-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>my.group.id</groupId> 
        <artifactId>AnArtifactId</artifactId> 
        <version>1.0-SNAPSHOT</version> 
        <scope>test</scope> 
        <type>test-jar</type> 
      </dependency> 
</dependencies> 

指定單獨<scope>test</scope>將表明,含有MyDependency源碼包罐子應該作爲的MyProject測試包的依賴。

然而,通過指定<type>test-jar</type>,將MyDependency的測試罐(即含有測試包的罐)用作MyProject的測試包的依賴關係。

0

Dependencies也自動Test Dependencies,但不是相反。

+0

謝謝,我也這麼想。那麼爲什麼我的'Source Packages'中的類能夠識別依賴關係,而'Test Packages'中的類卻不能呢?這不僅僅是一個Netbeans故障,嘗試在bash中使用'mvn'構建不適用於測試類:(可能是因爲我已經將測試所用的引用放入了我的依賴項中的「測試包」中?項目的測試包能否在缺省依賴項下看到依賴項的測試包 compile? – KomodoDave 2012-02-14 20:32:48

+0

發佈您的POM文件。 – 2012-02-14 20:34:50

+0

我不能因公司政策。不過,我已經向我的OP添加了儘可能多的其他信息,因爲我覺得它們會有用。任何進一步的建議將非常感激。 – KomodoDave 2012-02-14 20:43:38