Можно ли указать другую 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

Другие вопросы по тегам