如何在Eclipse中使用JRebel运行Jetty?

时间:2014-12-16 21:04:35

标签: maven jetty embedded-jetty maven-jetty-plugin jrebel

我在Eclipse中使用jetty maven插件来部署我的应用程序。这是pom.xml的一部分:

        <plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>9.2.5.v20141112</version>
            <dependencies>
                <dependency>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm</artifactId>
                    <version>5.0.2</version>
                </dependency>
                <dependency>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm-commons</artifactId>
                    <version>5.0.2</version>
                </dependency>
            </dependencies>
            <configuration>
                <scanIntervalSeconds>2</scanIntervalSeconds>
                <stopKey>stop</stopKey>
                <stopPort>9999</stopPort>
            </configuration>
        </plugin>

我还在Eclipse中安装了JRebel插件。那么如何用JRebel启动我的jetty服务器?

3 个答案:

答案 0 :(得分:3)

我很幸运地在Maven配置页面(我称之为jetty:run)中找到了答案,并且它有效。对于那些也需要它并使用JRebel Eclipse插件的人来说,答案是:

(如果有人知道更好的方法,我仍然会感激。也许在pom.xml中,在jetty.maven.plugin的配置中?)

enter image description here

答案 1 :(得分:3)

您需要将JRebel指定为JVM参数。由于Jetty是在与Maven相同的JVM进程中启动的,所以一旦Maven发现你在那里配置了一个Jetty,就已经太晚了。

在这种情况下你有两种选择

  1. 将参数传递给Maven,并且当Jetty在同一进程中启动时,它将挂起JRebel代理。您可以使用MAVEN_OPTS环境变量。
  2. 使用jetty:run-forked。它为Jetty创建了一个单独的JVM进程,并允许通过<jvmArgs/>配置选项指定参数。

答案 2 :(得分:0)

使用eclipse Marketplace安装JRebel for eclipse(帮助&gt; Eclipse Marketplace)并重启您的日食。

创建maven项目并配置jetty-server后,右键单击该项目,现在您应该在上下文菜单中看到JRebel选项。点击JRebel > Add Jrebel Nature

Jrebel Eclipse plugin

执行此操作后,您的项目将自动生成rebel.xml文件,并且应配置为使用您在项目中所做的更改来运行,而无需重新启动服务器。除此之外,我没有对项目进行任何具体的更改。但JRebel工作正常。

您还可以通过执行此操作将JRebel特性添加到项目中,

Help > JRebel Configuration > Projects Tab > Other Projects > Demo_Project

希望这有帮助。