web-dev-qa-db-fra.com

Comment ajouter VM args en utilisant le plugin pom.xml

J'ai essayé ci-dessous des moyens mais rien ne fonctionne ... j'essaye d'accéder à distance à jmx depuis le serveur.

         <jvmArgs>
         <jvmArg>-Dcom.Sun.management.jmxremote.port=9999</jvmArg>
        <jvmArg>-Dcom.Sun.management.jmxremote.authenticate=false</jvmArg>
          <jvmArg>-Dcom.Sun.management.jmxremote.ssl=false</jvmArg>
        </jvmArgs>

        <!-- <systemPropertyVariables> 
                                   <com.Sun.management.jmxremote.port>9999</com.Sun.management.jmxremote.port> 
                       <com.Sun.management.jmxremote.authenticate>false</com.Sun.management.jmxremote.a uthenticate> 
                     <com.Sun.management.jmxremote.ssl>false</com.Sun.management.jmxremote.ssl> 
                 </systemPropertyVariables> -->

                 <!-- <jvmArguments> 
                 <jvmArgument>- Dcom.Sun.management.jmxremote.port=9999</jvmArgument> 
                 <jvmArgument>- Dcom.Sun.management.jmxremote.authenticate=false</jvmArgument> 
                 <jvmArgument>- Dcom.Sun.management.jmxremote.ssl=false</jvmArgument> 
                </jvmArguments> -->

J'ai aussi essayé

 <options>
            <option>-Dcom.Sun.management.jmxremote.port=9999</option> 
            <option>-Dcom.Sun.management.jmxremote.authenticate=false</option> 
            <option>-Dcom.Sun.management.jmxremote.ssl=false</option> 
            </options>
6
Rahul sharma

Vous pouvez définir Java pour Maven en différents points et niveaux (globalement ou via la configuration des plugins):

Configuration du plugin: juste pour la compilation
À l'aide de la configuration Maven Compiler Plugin pour la compilation du code d'application et du code de test, vous pouvez définir les options Xmx, Xms, Xss requises via l'entrée de configuration compileArgs, disponible pour les deux compiler et testCompile objectifs. Un exemple officiel est disponible ici et sur d'autres SO répond comme celui-ci . Un exemple est également montré ci-dessous.

Configuration du plugin: juste pour l'exécution des tests
En utilisant la configuration Maven Surefire Plugin pour les exécutions de tests, vous pouvez définir les options Java Java à utiliser lors de l'exécution via l'entrée de configuration argLine de la test objectif. Un exemple officiel est disponible ici . Un exemple est également illustré ci-dessous sur le troisième point.

Configuration du plugin: via Propriétés (et profils)
Vous pouvez combiner les deux options ci-dessus (en cas de Java Java) communes en tant que valeur de propriété à transmettre à la fois compileArgs et argLine entrée de configuration ou avoir des propriétés différentes par configuration (selon vos besoins).

<property>
      <jvm.options>-Xmx256M</jvm.options>
</property>

[...]
<build>
  [...]
  <plugins>
    <plugin>
       <groupId>org.Apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <version>3.3</version>
       <configuration>
         <compilerArgs>
              <arg>${jvm.options}</arg>
         </compilerArgs>
      </configuration>
    </plugin>

    <plugin>
       <groupId>org.Apache.maven.plugins</groupId>
       <artifactId>maven-surefire-plugin</artifactId>
       <version>2.19.1</version>
       <configuration>
            <argLine>${jvm.options}</argLine>
       </configuration>
     </plugin>
   </plugins>
   [...]
</build>
[...]

L'utilisation de propriétés vous offre également deux avantages supplémentaires (en plus de la centralisation): vous pouvez utiliser des profils puis les personnaliser en fonction des différents comportements souhaités (et par exemple dans ce réponse SO ) et vous pouvez les remplacer via ligne de commande aussi, comme:

mvn clean install -Djvm.options=-Xmx512
19
RITZ XAVI