2012-02-14 226 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