在Eclipse中,我爲我的JRE設置了-ea
(啓用斷言)爲default VM argument。這使得使用斷言更加有用,我不想錯過它。如何覆蓋Eclipse中的默認JVM參數?
但是,有一些罕見的情況,我不想要-ea
。有沒有辦法來覆蓋(刪除)默認VM參數,比如說,一個特定的運行配置?
具體而言,我想使用Maven exec:java
運行配置運行JMH,但可用於任何類型運行配置的解決方案也不錯。
在Eclipse中,我爲我的JRE設置了-ea
(啓用斷言)爲default VM argument。這使得使用斷言更加有用,我不想錯過它。如何覆蓋Eclipse中的默認JVM參數?
但是,有一些罕見的情況,我不想要-ea
。有沒有辦法來覆蓋(刪除)默認VM參數,比如說,一個特定的運行配置?
具體而言,我想使用Maven exec:java
運行配置運行JMH,但可用於任何類型運行配置的解決方案也不錯。
您可以在Eclipse中創建新的JRE,而不需要-ea
參數(但安裝路徑相同)。
然後,對於啓動配置,您可以指定要使用的JRE。
Maven簡介怎麼樣?
下面的例子中使用了不同的配置不同的JDK:
<build>
<plugins>
<!-- we want JDK 1.6 source and binary compatiblility -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- ... -->
<!-- we want sources to be processed by a specific 1.6 javac -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>${JAVA_1_6_HOME}/bin/javac</executable>
<compilerVersion>1.3</compilerVersion>
</configuration>
</plugin>
</plugins>
</build>
如果開發人員只需添加(和自定義),以下行會settings.xml
,你的POM將是獨立於平臺:
<settings>
[...]
<profiles>
[...]
<profile>
<id>compiler</id>
<properties>
<JAVA_1_4_HOME>C:\Program Files\Java\j2sdk1.4.2_09</JAVA_1_4_HOME>
<JAVA_1_6_HOME>C:\Program Files\Java\j2sdk1.6.0_18</JAVA_1_6_HOME>
</properties>
</profile>
</profiles>
[...]
<activeProfiles>
<activeProfile>compiler</activeProfile>
</activeProfiles>
</settings>
下面引用Maven傳遞給編譯器插件JVM args ...但是我從來沒有試過它:
最好的方法是使用[toolchain](https://maven.apache.org/guides/mini/guide-using-toolchains.html),而不是屬性/配置文件組合。 – khmarbaise
嗯,我沒有看到任何關於JVM參數的答案。謹慎闡述? – rolve
是的,正如我寫的,這個例子使用不同的JDK,通過您可以指定爲maven編譯器插件不同的值看到這個線程:http://stackoverflow.com/questions/27035389/how-to-set-xxpermsize -64m-in-maven-compiler-plugin但是,正如你可以看到它依賴於MVNand編譯器版本,所以無法工作..如果你搜索周圍你會發現也爲你做這個的插件,或者你可以運行一個程序與執行安裝導出MAVEN_OPTS值的執行插件,我只是想給你一些想法如何使它.. – ivoruJavaBoy