2016-09-28 58 views
2

我嘗試了下面的方式,但沒有工作... 我想從服務器遠程訪問jmx。如何使用pom.xml插件添加虛擬機參數

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

我也試過

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

爲什麼你想添加vmargs?編譯,測試,運行你的應用程序?用什麼樣的maven目標你會這樣做?你應該展示更多你的pom。 –

回答

6

您可以在不同的點和水平(通過插件配置全局或)設置Java選項對Maven:

插件配置:只是編譯
使用Maven Compiler Plugin配置編譯應用程序代碼和測試代碼,您可以通過compileArgs配置程序設置所需的Xmx,Xms,Xss選項配置條目,可用於compiletestCompile目標。一個正式的例子是here和其他的答案如this one。 下面還顯示了一個示例。

插件配置:只爲測試執行
使用的測試執行的Maven Surefire Plugin配置,您可以設置在運行時通過的test目標argLine配置條目中使用所需的Java選項。一個正式的例子是here。 第三點也顯示了一個例子。

插件的配置:通過屬性(和型材)
可以作爲屬性值組合上面的兩個選項(在共同Java選項的情況)傳遞給既compileArgsargLine配置條目或具有每不同的特性配置(根據您的需要)。

<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> 
     <compilerArgs> 
      <arg>${jvm.options}</arg> 
     </compilerArgs> 
    </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> 
[...] 

使用屬性給你也是一個兩個額外的優勢(在集中的頂部):你可以使用配置文件,然後根據不同的期望行爲的個性化它(例如,在此SO answer),並且你可以通過命令覆蓋它們線,以及,如:

mvn clean install -Djvm.options=-Xmx512