Можно ли указать другую JVM для запуска Eclipse с tycho-surefire-plugin
У нас есть проект, который построен на Tycho 0.15.0. При запуске тестов (т.е. тестов пользовательского интерфейса) maven выполняет
cmd.exe /X /C ""C:\Program Files (x86)\Java\jre7\bin\java.exe" -Dosgi.noShutdown=false -Dosgi.os=win32 [...]"
Это работает до сих пор.
Но теперь мы хотим запустить тестовый экземпляр с другой JVM (например, в c:\my_custom_jvm\jre\bin
).
Можно ли этого достичь? Я искал возможности и нашел jvm
опция для плагина Maven Surefire, но, похоже, это не поддерживается tycho-surefire ...
Для справки вот полный фрагмент файла pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>0.15.0</version>
<configuration>
<testSuite>my.tests</testSuite>
<testClass>my.tests.AllTests</testClass>
<product>my.product</product>
<bundleStartLevel>
<bundle>
<id>org.eclipse.equinox.event</id>
<level>4</level>
<autoStart>true</autoStart>
</bundle>
</bundleStartLevel>
<dependencies>
<dependency>
<type>p2-installable-unit</type>
<artifactId>my.product</artifactId>
<version>0.0.0</version>
</dependency>
</dependencies>
<argLine>-Xmx768m -XX:PermSize=128m -Xss1m -Dosgi.framework.extensions=org.eclipse.equinox.weaving.hook -Dequinox.ds.block_timeout=60000 -Dequinox.use.ds=true</argLine>
</configuration>
</plugin>
</plugins>
</build>
2 ответа
(основываясь на ответе jsievers)
Плагин toolchain делает именно то, что мне нужно.
Я добавил следующие строки в мой файл pom.xml (внутри тега):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>1.4</version>
<vendor>sun</vendor>
</jdk>
</toolchains>
</configuration>
</plugin>
И я создал toolchain.xml
файл в C:\Users\itsame\.m2
(если вы хотите разместить его в другом месте, возможно, это поможет) с этим содержимым:
<?xml version="1.0" encoding="UTF8"?>
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>1.4</version>
<vendor>sun</vendor>
<id>CustomJRE</id>
</provides>
<configuration>
<jdkHome>c:\my_custom_jvm\jre</jdkHome>
</configuration>
</toolchain>
</toolchains>
Обратите внимание, что, хотя это JRE (а не JDK), это работает для запуска тестов.
Tycho верный имеет поддержку наборов инструментов Maven [1]
[1] http://maven.apache.org/guides/mini/guide-using-toolchains.html