2012-04-02 4 views
1

Alors que la construction de mon projet, il y a deux versions de org.bouncy-château: bcprov nécessaireMaven transitive problème de dépendance

  • org.bouncy-château: bcprov-jdk12
  • org.bouncy-château: bcprov -jdk16

Ainsi, alors que la liste en bas de la dépendance, je reçois le jdkversion12

Est-il possible de modifier le fichier POM de telle manière que jdkversion16 est listé en premier?

Répondre

3

Vous pouvez exclure une dépendance en spécifiant comme ça - dans votre cas, vous exclure la jdk12 un:

<dependency> 
      <groupId>group</groupId> 
      <artifactId>artifact</artifactId> 
      <version>1.0.0</version> 
      <exclusions> 
        <exclusion> 
          <groupId>org.bouncycastle</groupId> 
          <artifactId>bcprov-jdk12</artifactId> 
        </exclusion> 
      </exclusions> 
    </dependency> 

De cette façon, seul le jdk16 on doit être tiré dans

Si. vous devez tirer dans l'un des deux en fonction de l'endroit où vous construisez et quelle version du JDK est installé, vous pouvez utiliser des profils pour distinguer, par exemple comme ceci:

<profile> 
    <id>jdk12</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
     <jdk>1.2</jdk> 
    </activation> 
    <dependencies> 
     <dependency> 
      <groupId>group</groupId> 
      <artifactId>artifact</artifactId> 
      <version>1.0.0</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.bouncycastle</groupId> 
        <artifactId>bcprov-jdk16</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
    </dependencies> 
</profile> 
<profile> 
    <id>jdk16</id> 
    <activation> 
     <jdk>1.6</jdk> 
    </activation> 
    <dependencies> 
     <dependency> 
      <groupId>group</groupId> 
      <artifactId>artifact</artifactId> 
      <version>1.0.0</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.bouncycastle</groupId> 
        <artifactId>bcprov-jdk12</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
    </dependencies> 
</profile> 

Exemple tiré de: http://svn.apache.org/repos/asf/webservices/wss4j/trunk/pom.xml

+0

Merci pour la réponse rapide. Mais j'ai besoin des deux fichiers jar. Y at-il un moyen de garder les deux pots, mais tout en listant, il faut d'abord lister le jdk16. Aussi, comme vous l'avez mentionné, c'est org.bouncycastle. –

+0

Que voulez-vous dire quand vous dites * annonce *? Où devrait-il être listé en premier? Sur le chemin des classes? Dans la liste des dépendances? – nwinkler

+0

'dépendance mvn: liste' –

Questions connexes