是否可以使用 运行-forked 从不同的 JVM 运行 Jetty?
Is it possible to run Jetty from a different JVM using run-forked?
Maven 指向 Java 6,当从 jetty-maven-plugin 调用它时,我想从 Java 7 JVM 运行 Jetty,使用 运行-分叉目标。我看到一个用于设置 jvmArgs 的选项,但我没有看到任何允许我选择不同 JVM 的选项。
我想我可以只使用 maven-exec 并下拉到 shell 脚本(调用任何我想要的 java 二进制文件),但我宁愿住在 maven-land 如果可能。
仅供参考,我正在使用 Maven 3 和 Jetty 9。
Maven 通常不支持其任何插件中的备用 JVM 行为。
您可以改为在 Java 7 中选择 运行,并且所有编译/测试都是使用 Java 6 的 -source
和 -target
完成的,留下jetty-maven-plugin 与您执行构建的 JVM 级别相同。
Jetty 自己的构建就是这样做的。
我们构建 Java 8,-source
和 -target
为 Java 7。
您可能还想查看 enforcer 插件并为构建设置最低 JVM 级别的强制实施。
是的,这是可能的。
JettyRunForkedMojo 使用标准 JDK ProcessBuilder.start()
启动分叉的 JVM。
如 source, Mojo uses getJavaBin() method 中所示,找到 java 可执行文件的路径。
为此分析了系统变量"java.home"的值。
因此,使用 jetty-maven-plugin 的配置:
...
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run-forked</goal>
</goals>
<configuration>
...
<systemProperties>
<force>true</force> <!-- !!! important -->
<systemProperty>
<name>java.home</name>
<value>/usr/lib/jvm/j2sdk1.6-oracle/</value>
</systemProperty>
</systemProperties>
</configuration>
</execution>
可以启动指定版本的分叉 JVM。
在我的示例中,我默认 java home 设置为 1.7,但强制分叉 JVM 使用 1.6 JDK(也已安装)。
Maven 指向 Java 6,当从 jetty-maven-plugin 调用它时,我想从 Java 7 JVM 运行 Jetty,使用 运行-分叉目标。我看到一个用于设置 jvmArgs 的选项,但我没有看到任何允许我选择不同 JVM 的选项。
我想我可以只使用 maven-exec 并下拉到 shell 脚本(调用任何我想要的 java 二进制文件),但我宁愿住在 maven-land 如果可能。
仅供参考,我正在使用 Maven 3 和 Jetty 9。
Maven 通常不支持其任何插件中的备用 JVM 行为。
您可以改为在 Java 7 中选择 运行,并且所有编译/测试都是使用 Java 6 的 -source
和 -target
完成的,留下jetty-maven-plugin 与您执行构建的 JVM 级别相同。
Jetty 自己的构建就是这样做的。
我们构建 Java 8,-source
和 -target
为 Java 7。
您可能还想查看 enforcer 插件并为构建设置最低 JVM 级别的强制实施。
是的,这是可能的。
JettyRunForkedMojo 使用标准 JDK ProcessBuilder.start()
启动分叉的 JVM。
如 source, Mojo uses getJavaBin() method 中所示,找到 java 可执行文件的路径。 为此分析了系统变量"java.home"的值。
因此,使用 jetty-maven-plugin 的配置:
...
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run-forked</goal>
</goals>
<configuration>
...
<systemProperties>
<force>true</force> <!-- !!! important -->
<systemProperty>
<name>java.home</name>
<value>/usr/lib/jvm/j2sdk1.6-oracle/</value>
</systemProperty>
</systemProperties>
</configuration>
</execution>
可以启动指定版本的分叉 JVM。
在我的示例中,我默认 java home 设置为 1.7,但强制分叉 JVM 使用 1.6 JDK(也已安装)。