通过实时重新加载(客户端)在最新的IntelliJ Idea上运行多个Workbench模块

注意:以下说明仅适用于旧版本的gwt-maven-plugin

在过去的某个时候,IntelliJ发布了一个更新,该更新使使用GWT插件无法运行Workbench。 与团队中的成员交流想法并总结解决方案后,出现了一些解决方法。 本指南提供了有关在IntelliJ最新版本中运行任何基于Errai的应用程序以及其他模块的信息,以利用IntelliJ(不幸的是有限的)实时重载功能来加快开发工作流程。

目录

1.在最新的IntelliJ中运行基于Errai的应用程序

2.导入其他模块并将实时重载用于客户端代码

3.高级配置
3.1。 配置项目的pom.xml为您下载和解压缩Wildfly 3.2。 未修补的Wildfly发行版的替代解决方法

1.在最新的IntelliJ中运行基于Errai的应用程序

正如Max Barkley早在#logicabyss上所述,IntelliJ已决定在GWT插件中启动Super Dev Mode时将gwt-dev类硬编码到类路径中。 由于我们使用EmbeddedWildflyLauncher部署Workbench应用程序,因此这些依赖项现在已部署在Wilfdfly实例中。 除了gwt-dev jar依赖于apache-jsp ,这没有什么错,该文件具有ServletContainerInitializer标记文件,该文件会导致部署失败。

为了解决该问题,在Maven Central的org.jboss.errai组ID下提供的自定义修补版本的Wildfly中删除了查找ServletContainerIntitilizer文件并导致部署失败的代码。

以下步骤提供了在最新版本的IntelliJ上运行任何基于Errai的应用程序的快速指南。

1.下载打补丁的Wildfly版本并将其解压缩到您喜欢的任何目录中

–对于Wildfly 11.0.0.Final,请转到此处

2.导入要使用的模块(我使用drools-wb进行了测试)

–打开IntelliJ,转到File -> Open ..并选择pom.xml文件,单击Open,然后选择Open as Project

3.像以前在IntelliJ上一样配置GWT插件执行

– VM选项:

-Xmx6144m
-Xms2048m
-Dorg.uberfire.nio.git.dir=/tmp/drools-wb
-Derrai.jboss.home=/Users/tiagobento/drools-wb/drools-wb-webapp/target/wildfly-11.0.0.Final

–开发模式参数:

-server org.jboss.errai.cdi.server.gwt.EmbeddedWildFlyLauncher

4.点击播放按钮,等待应用程序被部署

2.导入其他模块并将实时重新加载用于客户端代码

能够在最新版本的IntelliJ中运行单个webapp之后,也可以导入其某些依赖项,这很有用,因此,在对该依赖项更改客户端代码后,您不必等待(方式)对于GWT来说太长了,无法再次编译并捆绑您应用程序JavaScript代码。

只需File > New > Module from existing sources进入File > New > Module from existing sources然后选择要导入的模块的pom.xml

如果您将kie-wb-common或appformer与另一个项目一起导入,则肯定会在Webapp的beans.xml文件中应用补丁。

对于drools-wb您可以在此处下载补丁。 对于其他项目,例如jbpm-wb ,optaplanner-wb或kie-wb-distributions ,您基本上必须做同样的事情,但是要更改.diff文件中的目录。

如果您的Web应用程序已启动,请单击“停止”按钮,然后再次单击“播放”。 现在,您应该能够更快地重新编译IntelliJ中更改的所有代码。

配置项目的pom.xml为您下载和解压缩Wildfly

如果您习惯于较少的手动工作流程,则可以使用maven-dependency-plugin将所选的Wildfly实例下载并解压缩到所需的任何目录中。

在将以下片段添加到pom.xml文件之后,请记住在GWT Configuration的“启动之前”部分中,在Build应用程序之前添加“运行Maven目标”。 在这里,我正在使用process-resources阶段,但其他阶段也可以。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>unpack</id>
        <phase>process-resources</phase>
        <goals>
          <goal>unpack</goal>
        </goals>
        <configuration>
          <artifactItems>
            <artifactItem>
              <!-- Using a patched version of Wildfly -->
              <groupId>org.jboss.errai</groupId>
              <artifactId>wildfly-dist</artifactId>
              <version>11.0.0.Final</version>
              <type>zip</type>
              <overWrite>false</overWrite>
              <!-- Unpacking it into /target/wildfly-11.0.0.Final -->
              <outputDirectory>${project.build.directory}</outputDirectory>
            </artifactItem>
          </artifactItems>
          <skip>${gwt.compiler.skip}</skip>
        </configuration>
      </execution>
    </executions>
  </plugin>

未修补的Wildfly发行版的替代解决方法

如果您想尝试其他版本的Widlfly,或者只是不想依赖任何修补的版本,仍然可以使用官方发行版,并排除
ServletContainerInitializer从文件apache-jsp您M2_REPO文件夹罐子。

如果您在Unix系统上工作,则应使用以下命令。

1。 cd〜/ .m2 /存储库/

2。 zip -d org / eclipse / jetty / apache-jsp / {version} / apache-jsp- {version} .jar META-INF / services / javax.servlet.ServletContainerInitializer

通过从apache-jsp jar中手动排除它,Maven在删除文件后不会尝试再次下载它。 只要您不删除~/.m2/文件夹,该解决方案便会永久存在。 请记住,如果您需要apache-jsp jar来恢复该文件,最好的选择是删除apache-jsp依赖项目录,然后让Maven重新下载它。

新版本的gwt-maven-plugin新说明即将发布,敬请期待!

翻译自: https://www.javacodegeeks.com/2018/02/running-multi-workbench-modules-latest-intellij-idea-live-reloading-client-side.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值