2017-10-09 1 views
0

Je suis en train d'exclure javax.persistence de JavaEE-api maven dépendancePas en mesure d'exclure javax.persistence de JavaEE-api maven dépendance

 <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> 

Mais même après avoir ajouté l'exclusion, j'ai encore le javax.persistence package dans le javaee-api-7.0.jar

Répondre

0

Une exclusion de dépendance exclut un pot de la résolution de l'artefact.
Cela signifie que la dépendance (jar) ne sera pas transmise pendant la génération.
Dans votre cas, cela signifie que cette dépendance:

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

ne seront pas inclus dans la résolution de la dépendance:

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

et ainsi ne seront pas inclus dans l'artefact que vous construisez. Mais cela ne signifie pas que les classes dont le paquet commence par javax.persistence seront supprimées du fichier jar. Le pot javax:javaee-api:7.0 sera en effet fourni avec son contenu original.


En outre, votre exclusion n'a aucun sens.
org.eclipse.persistence:javax.persistence n'est pas une dépendance fournie par javax:javaee-api.

javax:javaee-api est l'API Java EE tout org.eclipse.persistence:javax.persistence fait référence à un remballage de l'API javax.persistence spécifique de Java EE + quelques extensions fournies par EclipseLink.