相关疑难解决方法(0)

Maven - 测试中的不同依赖版本

我遇到了类似于Maven 2的问题- 测试和编译中的不同依赖版本但是指定的答案不起作用.

在我的项目中,我需要依赖于Hadoop的Cloudera发行版和JUnit测试的"vanilla"版本,因为前者仅适用于*nix.

当我尝试执行我的应用程序时,我得到了Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration.当我从Maven或Eclipse运行JUnit测试时,一切正常.如果我注释掉test依赖项,应用程序将成功运行.

为什么在取消注释依赖项compile时会忽略test依赖关系?

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>0.20.2-cdh3u2</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>1.0.0</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-test</artifactId>
        <version>1.0.0</version>
        <scope>test</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

mvn dependency:list显示以下内容,它根本不显示compile范围版本:

[INFO] The following files have been resolved:
[INFO]    ant:ant:jar:1.6.5:test
[INFO]    aopalliance:aopalliance:jar:1.0:compile
[INFO]    asm:asm:jar:3.3.1:compile
[INFO]    cglib:cglib:jar:2.2.2:compile
[INFO]    ch.qos.logback:logback-classic:jar:1.0.0:compile
[INFO]    ch.qos.logback:logback-core:jar:1.0.0:compile
[INFO]    com.google.guava:guava:jar:r08:compile
[INFO]    com.h2database:h2:jar:1.3.164:test
[INFO]    com.jolbox:bonecp:jar:0.7.1.RELEASE:compile
[INFO]    com.sun.jersey:jersey-core:jar:1.11:test
[INFO]    commons-beanutils:commons-beanutils:jar:1.7.0:test
[INFO]    commons-beanutils:commons-beanutils-core:jar:1.8.0:test
[INFO]    commons-cli:commons-cli:jar:1.2:test
[INFO] …
Run Code Online (Sandbox Code Playgroud)

hadoop maven cloudera

1
推荐指数
1
解决办法
3614
查看次数

标签 统计

cloudera ×1

hadoop ×1

maven ×1