Maven 2 在一些maven概要文件中,是否可以将模块依赖项插入类路径的开头?

Maven 2 在一些maven概要文件中,是否可以将模块依赖项插入类路径的开头?,maven-2,jmockit,Maven 2,Jmockit,我正试图将jmockit-coverage-0.994.jar依赖项从项目移到默认情况下不处于活动状态的某个概要文件,但无法将其从概要文件依赖项插入结果类路径的开头。从版本2.0.9开始,Maven按照pom中列出的相同方式排序依赖项。也就是说,一旦您开始从概要文件中合并依赖项,这一切就变得非常重要了。您可能需要检查您的有效pom,以查看订单的外观: mvn帮助:有效的pom-Pprofile 如果结果不好,那么一种解决方法就是使用。另一种解决方案是使用作用域而不是概要文件来执行包含。从Mave

我正试图将jmockit-coverage-0.994.jar依赖项从项目移到默认情况下不处于活动状态的某个概要文件,但无法将其从概要文件依赖项插入结果类路径的开头。

从版本2.0.9开始,Maven按照pom中列出的相同方式排序依赖项。也就是说,一旦您开始从概要文件中合并依赖项,这一切就变得非常重要了。您可能需要检查您的有效pom,以查看订单的外观:

mvn帮助:有效的pom-Pprofile


如果结果不好,那么一种解决方法就是使用。另一种解决方案是使用作用域而不是概要文件来执行包含。

从Maven 2.0.9开始,在构建类路径时,依赖项的自然顺序确实得到了保留,如2.0.9的第1部分所述:

/引入了类路径上依赖项的确定性排序。在过去,使用自然集排序,这会导致奇怪的结果。现在从pom中保留了顺序,最后添加了由继承添加的依赖项。在具有冲突或重复依赖项的生成中,这可能会导致输出发生更改。简言之,如果您对2.0.9有奇怪的问题,请查看依赖项,看看是否存在冲突


因此,通过在POM中按照依赖项的顺序进行操作,您实际上可以操纵类路径(在使用概要文件时,这可能会变得有点棘手,但是,由于您没有提供实际问题的详细信息,因此很难提供更多的指导)。

我已经回滚了使用上述活动概要文件的攻击,因为我找到了更优雅的方法来解决我的问题

问题的根源是由于在JUnit上使用了一些my testutils模块和编译范围依赖项(必须在类路径中的JMockit之后),而在父POM中,测试依赖项定义如下:

...
<dependencies>
    <dependency>
        <groupId>mockit</groupId>
        <artifactId>jmockit</artifactId>
        <version>0.994</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.7</version>
        <scope>test</scope>
    </dependency>
</dependencies>
...
    <profiles>
    <profile>
        <id>coverage</id>
        <dependencies>
            <dependency>
                <groupId>mockit</groupId>
                <artifactId>jmockit-coverage</artifactId>
                <version>0.994</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </profile>
...
。。。
嘲弄
杰莫基特
0.994
测试
朱尼特
朱尼特
4.7
测试
...
新闻报道
嘲弄
jmockit覆盖率
0.994
测试
...
找到的解决方案正在将JUnit范围从测试替换为提供的


这是个更好的把戏吗?

很抱歉对自己的问题给出了很多答案


但现在不需要任何maven deps技巧,因为现在可以通过系统属性配置jmockit覆盖率的运行。见和

非常感谢!您的回答帮助我更快地找到以下W/A:我已将依赖项列表从项目移动到默认情况下处于活动状态的配置文件(“我的情况下为nexus”)并将相同的列表复制到“coverage”配置文件中,但在开头插入了所需的依赖项:coverage mockit jmockit coverage 0.994 nexus,但更方便的在类路径中安排依赖项位置的方法将非常有助于解决此类问题。更好的解决方案是移动覆盖率建设到站点报告生命周期,但我不知道如何。。。