Mise à jour 2020
la prochaine renaissance
(en raison de certaines dispositions légales questions , javax.*
sont renommés en jakarta.*
. Ainsi la version actuelle 1.2.2+ de Cadre d'activation de Jakarta utiliser les noms :
-
jakarta.activation:jakarta.activation-api
(au lieu de javax.activation:javax.actication-api
) ou
-
com.sun.activation:jakarta.activation
(au lieu de com.sun.activation:javax.activation
javax.activation:activation
) et
(Le nom des paquets dans ces bibliothèques est toujours javax.activation
donc ce problème ne concerne que les noms des dépendances de Maven)
<dependency>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
<version>1.2.2</version>
</dependency>
ou
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>1.2.2</version>
</dependency>
Attention : vous ne pas a besoin des deux dépendances, car com.sun.activation:javax.activation
incluent les classes de jakarta.activation:jakarta.activation-api
Indice Utilisez Maven enforcer pour garder votre projet libre de ces doublons :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
<executions>
<execution>
<id>enforce-lib-ban</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<!-- the activation framework was renamed to jarkata activation framework -->
<excludes>
<exclude>javax.activation:javax.actication-api</exclude>
<exclude>com.sun.activation:javax.activation</exclude>
<exclude>javax.activation:activation</exclude>
</excludes>
<message>use jakarta.activation:jakarta.activation-api or com.sun.activation:jakarta.activation instead of javax.activation</message>
</bannedDependencies>
<!-- if you use com.sun.activation:jakarta.activation
<bannedDependencies>
<!- - the implementation com.sun.activation:jakarta.activation contains the api classes too - ->
<excludes>
<exclude>jakarta.activation:jakarta.activation-api</exclude>
</excludes>
<message>the implementation com.sun.activation:jakarta.activation is included and it contains the api classes too</message>
</bannedDependencies>
-->
</rules>
</configuration>
</execution>
</executions>
</plugin>
6 votes
Un petit ajout : Le JDK 11 supprime cette fonctionnalité (dans le cadre de JEP 320), donc à partir de ce moment-là, JAF doit être inclus comme une dépendance séparée s'il est utilisé.
0 votes
Quelle est la dépendance requise pour l'activation de javax.mail ? javax.mail devrait suffire. N'est-ce pas ?
2 votes
La partie MimeBodyPart de javax.mail utilise le DataHandler d'activation pour définir le contenu mime de cette partie. J'ai rencontré ce problème aujourd'hui. Je n'ai pas pu comprendre pourquoi le thread principal s'est tout simplement volatilisé alors qu'il fonctionnait dans l'IDE. J'ai seulement attrapé l'exception, donc la classe non trouvée a glissé à travers. Après avoir dit que mon projet devait s'exécuter avec JRE 8, le problème a disparu> J'ai perdu des heures là-dessus.