Maven 3.0.3使用旧的JUnit插件,它没有org.junit。*包

时间:2012-01-20 10:17:27

标签: maven maven-3 maven-surefire-plugin

我正在使用Hudson并尝试从subversion存储库构建maven项目。 问题是,Maven下载了一个旧的junit版本,我猜,因为我发现了这个:

  

正在下载:..repo1.maven.org / maven2 / junit / junit / 3.8.1 / junit-3.8.1.pom   已下载:..repo1.maven.org / maven2 / junit / junit / 3.8.1 / junit-3.8.1.pom(998 B,2.0 KB /秒)

后来它抱怨org.junit。*包不存在。

当我改为让Hudson构建了这个项目的本地副本(而不是subversion managed)时,它启动了junit测试:

T E S T S

运行JUnitTest ...

我的pom.xml看起来像这样:

http://codeviewer.org/view/code:2227

(我也试过了     JUnit的     4.8.2  没有方括号,这没有任何帮助。 )

如何让JUnit测试运行?

1 个答案:

答案 0 :(得分:1)

虽然在pom中指定了具有dependency版本的junit 4.8.2,但它位于<dependencyManagement>标记之间。因此,除非在构建中显式定义依赖关系,否则不会使用该版本。

您可以通过两种方式解决问题。

删除外部<dependencyManagement>标记 - 只保留内容。

除了<dependencyManagement><build>标记之间的pom文件中的内容之外,还要定义以下内容。

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
    </dependency>
</dependencies>

Pom reference