web-dev-qa-db-fra.com

--add-modules uniquement sur compilation

Je construis mon projet avec maven et Java-9 . J'ai ajouté dans mon pom.xml fichier:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${maven-compiler-plugin.version}</version>
    <configuration>
        <source>${Java.version}</source>
        <target>${Java.version}</target>
        <compilerArgs>
            <arg>--add-modules</arg>
            <arg>Java.xml.bind</arg>
        </compilerArgs>
    </configuration>
</plugin>

Mais encore, pour exécuter l'application, je dois l'exécuter comme ceci:

Java -jar --add-modules Java.xml.bind my-app.jar

Existe-t-il un moyen de créer l’application, d’exécuter à partir de la ligne de commande sans --add-modules Java.xml.bind to Java arguments en ligne de commande?

27
wbk

J'ai fait cette réponse il y a quelque temps, j'ai répondu à cela en tant qu'information supplémentaire pour exposer non Java.se paquets en Java-9 utilisant Maven.

La partie ajoutée concerne spécifiquement l’utilisation de la version autonome de la Java.xml.* API. Pour vous adapter à ce que vous pouvez probablement commencer à consommer la dépendance sur jaxb-api:2.3.0 qui peut être chargé en tant que module et peut également être exécuté à partir du chemin de classe. La modification à apporter consiste à ajouter les éléments suivants à votre liste de dépendances:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>

Ainsi, vous assurez la migration du module vers des API autonomes et vous éloignez d'un morceau de code obsolète.

33
Naman