无法从javaee-api maven依赖项中排除javax.persistence

时间:2017-10-09 07:07:59

标签: java maven dependencies

我试图从javaee-api maven依赖

中排除javax.persistence
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.eclipse.persistence</groupId>
                    <artifactId>javax.persistence</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

但即使在添加排除后,我仍然在javaee-api-7.0.jar

中有javax.persistence包

1 个答案:

答案 0 :(得分:0)

依赖项排除将jar从工件的解析中排除 这意味着在构建期间不会传递依赖性(jar) 在您的情况下,它意味着这种依赖:

<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>

不会包含在依赖项的解析中:

<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>

因此不会包含在您构建的工件中。

但这并不意味着包含以javax.persistence开头的包的类将从jar中删除 确实会向javax:javaee-api:7.0 jar提供其原始内容。

此外,你的排除没有任何意义 org.eclipse.persistence:javax.persistence不是javax:javaee-api提供的依赖项。

javax:javaee-api是Java EE API,而org.eclipse.persistence:javax.persistence是指重新打包java EE的特定javax.persistence API + EclipseLink提供的一些扩展。