2017-02-27 141 views
0

我有一个包装类型为war(JSF应用程序)的maven-module“web-app”。它对包装类型为jar的同一项目的另一个模块“核心”具有依赖性。这个jar包含了Java类和资源(js或xhtml-Files)。使用IntelliJ IDEA部署分解多模块项目

现在我在IntelliJ 2016.3中使用Web应用程序的分解版本在JBoss上进行部署。但是模块“核心”也没有爆炸,所以我不能对核心资源进行热部署。但是:类的热部署工作。

我已经对webapp-artifact尝试了一些修改: 当我在JBoss启动时加入“核心编译输出”到WEB-INF/classes,但找不到任何资源。 当将“核心编译输出”添加到没有被jar包围的WEB-INF/lib中时,我得到一堆ClassNotFound-Exceptions。

我重视的神器当前配置: enter image description here

你有一个想法,我怎么能热再部署我的资源?

- 编辑

包装时使用maven -folder包含所有依赖关系罐子web-app/target项目。 使用Maven的资源,我的插件添加到web应用的pom.xml下面的代码片断的CrazyCoders评论后:

# web-app/pom.xml 
<build> 
    ... 
    <resources> 
     <resource> 
      <directory>../core/src/main/resources/META-INF/resources</directory> 
     </resource> 
    </resources> 
    ... 
</build> 

现在的资源在web-app/target -folder!例如,文件search.xhtml位于以下位置:

1. web-app/target/classes/app/search/search.xhtml 
2. web-app/target/<finalName>/WEB-INF/classes/app/search/search.xhtml 

,包装瓶之后里面:

3. web-app/target/<finalName>/WEB-INF/lib/core-1.11.0-SNAPSHOT.jar 
4. core/target/core.jar 

当我改变search.xhtml并单击IntelliJ IDEA的“更新资源”,只有文件1.,2.和3.更改,但不是4.

重新加载时仍然没有任何反应。在上面的屏幕截图中,配置了IntelliJ应该使用core-1.11.0-SNAPSHOT而不是core.jar。或者还有其他的原因,为什么这些资源不会更新?

问候, 六甲

+0

你确定核心编译输出包含所有必需的文件吗?检查磁盘上的输出目录。 – CrazyCoder

+0

是的,它包含所有的.cass文件,但没有像css或js这样的资源文件。 –

+0

因此,问题是由模块的编译输出中缺少的资源引起的? – CrazyCoder

回答

0

这听起来很相似,我一直在努力与过去几天的一个问题。问题是Intellij没有使用Maven来构建模块。这只是做一个简单的编译。所以jar没有正确打包。我的解决方法是从lib节点中删除模块的条目,使用Add Copy of of替换新条目将文件指向模块目标文件夹中的jar文件。完成之后,我还需要在配置之前添加一个运行Maven目标,以在构建战争工件之前执行“清理包”。

相关问题