如何从耳朵的lib文件夹中删除Maven的工件?

时间:2011-03-02 13:05:59

标签: maven maven-plugin

如何从耳朵的lib文件夹中删除瑕疵?例如:activation.jar。

我尝试按照Excluding a module的especification(只更改jarModule的webModule),但没有成功解决此错误:Artifact[jar:javax.activation:activation] is not a dependency of the project.

3 个答案:

答案 0 :(得分:1)

在定义依赖项的任何地方使用provided作为范围。

<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
    <scope>provided</scope>
</dependency>

答案 1 :(得分:1)

scope设置为provided。 Maven仍然会将依赖项添加到编译时类路径中,但不会添加到最终的WAR。

答案 2 :(得分:0)

正如其他人所说,你需要使用provided作为范围。如果您需要删除的jar不是直接项目的依赖项(即 transient 依赖项),那么您需要将它们排除在将它们引入构建的任何内容中。如果您在编译时确实需要这些类,则必须将它们重新包含为provided

    <dependency>
        <!-- this dependency has javax.activation as a dependency -->
        <groupId>blah.groupId</groupId>
        <artifactId>blah.artifactId</artifactId>
        <version>blah.version</version>
        <exclusions>
            <exclusion>
                <groupId>javax.activation</groupId>
                <artifactId>activation</artifactId>
            <exclusion>
        </exclusions>
    </dependency>

    <!-- only necessary if this jar is needed at compile-time -->
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
        <scope>provided</scope>
    </dependency>