开发者

How can I remove artifacts by Maven from the lib folder of the ear?

开发者 https://www.devze.com 2023-02-14 13:43 出处:网络
How can I remove artifacts from the lib folder of the ear? For exemple: activation.jar. I was tr开发者_开发百科y follow the especification about Excluding a module (just change webModule for jarModul

How can I remove artifacts from the lib folder of the ear? For exemple: activation.jar.

I was tr开发者_开发百科y follow the especification about Excluding a module (just change webModule for jarModule) but without success with this error: Artifact[jar:javax.activation:activation] is not a dependency of the project.


Use provided as scope wherever the dependency is defined.

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


Set the scope to provided. Maven will still add the dependency to the compile time classpath but not to the final WAR.


As others have said, you need to use provided as the scope. If the jars you need to remove are not dependencies of your project directly (ie are transient dependencies), then you need to exclude them from whatever is bringing them into your build . If you actually need those classes at compile-time, you'll have to re-include them as 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>
0

精彩评论

暂无评论...
验证码 换一张
取 消