我的WAR文件中的"jrebel JAR文件"在哪里?

M.N*_*mjo 1 intellij-idea jrebel

我想使用jrebelintellij IDEAJBOSS AS7.

(有一个Web应用程序(所以有WAR)).

通过apache-ANT,构建my-WAR并将其部署在JBOSS AS下.

我知道如何在my-WAR中将类或资源的任何更改引入jrebel(如果我没有记错的话!),如下所示:

(在rebel.xml中)

<classpath>
    <dir name="D:/project/myProject/out/production/myProject">
    </dir>
</classpath>

<web>
    <link target="/">
        <dir name="D:/project/myProject/resources">
        </dir>
        <dir name="D:/project/myProject/view">
        </dir>
    </link>
</web>
Run Code Online (Sandbox Code Playgroud)

但是,真的,"jerebel jar文件" my-WAR 在哪里

in =>"warFile> WEB-INF> lib"?我没有看到它.

请帮我.

Ant*_*pov 5

jrebel.jar打包在IntelliJ IDEA的JRebel插件中.它不必与WAR本身一起部署.当您通过"使用JRebel运行"或"使用JRebel调试"启动时,JRebel插件将为命令行设置正确的JVM参数:

-javaagent:/path/to/jrebel.jar
Run Code Online (Sandbox Code Playgroud)

更新:使用-agentpath JVM选项配置较新版本的JRebel :

-agentpath:${JREBEL_HOME}/lib/<platform-specific-binary>
Run Code Online (Sandbox Code Playgroud)

请参阅正确设置的文档参考.


如果从IDE启动服务器,则不必自己执行此操作.如果从命令行启动服务器,则必须使用正确的jrebel.jar路径自行添加JVM参数,如下所述:http://manuals.zeroturnaround.com/jrebel/standalone/launch-from-command -line.html#JBoss的-7-X

Java代理拦截类加载,因此必须在其他类之前加载.正如您可能已经猜到的那样,jrebel.jar是一个Java代理,因此不需要将它打包到WAR中.

相反,配置文件rebel.xml必须打包在WAR-WEB/INF/classes目录中.JRebel使用rebel.xml来检测已编译的类和资源.因此,在部署应用程序时,JRebel会找到rebel.xml配置文件,并且不会从WAR本身加载应用程序类,而是使用该rebel.xml文件中指定的路径.这就是为什么rebel.xml必须战争中,因为你也可以从命令行而不是IDE启动服务器.