我已经设置了两个eclipse项目(jsf2 web项目)并通过eclipse将它们部署到glassfish
eclipse juno ee 4.2.1 sr1 (fresh install and new workspace)
maven wtp
m2e
glassfish plugin for eclipse
glassfish 3.1.2.2
一个项目是一个简单的动态Web项目,从头开始创建,只有一个ejb和一个.xhtml文件。
在动态Web项目中保存.xhtml文件时,它将被静默复制到glassfish / domains / domain1 / eclipseApps中的正确位置,以便快速测试更改。
然而,在我使用import-maven-project-wizard(选择.pom文件)创建的其他项目中,保存.xhtml文件将触发重建和重新发布,这需要花费相当多的时间。在这两种情况下,应用程序运行完全正常
(使用primefaces,一些glassfish-web.xml persistence.xml等maven项目也更复杂......但我相信这不会导致不同的行为)
问:我需要更改哪些设置才能使我的maven项目像动态网络项目一样?
编辑: 问题摘要:在maven项目中保存.xhtml文件也会导致重新部署所有EJB和ManagedBeans
编辑(在balus C的提示之后):
调查表明m2e wtp插件会在每次保存工作区中的文件时在以下文件中生成新的时间戳。
target\m2e-wtp\web-resources\META-INF\maven\<groupId>\<artifactId>\pom.properties
target\m2e-wtp\web-resources\META-INF\maven\<groupId>\<artifactId>\pom.xml
如果我理解正确的讨论here,有人已经做了一个修复,如果由于其他maven的东西不需要,将阻止这些文件被更新。遗憾的是,如果我正确理解了git-hub,那么这个问题的解决方案还没有发布。
Maven archiver支持配置选项<addMavenDescriptor/>
以禁用pom.properties的生成,但似乎m2e-wtp插件已决定不遵守此选项link
编辑(20130114) 我尝试卸载m2e wtp只是为了看看是否可以解决pom.properties的问题。另外,我检查了我编辑的.xhtml文件是域/ domain1 / eclipseApps /下新文件夹下的唯一文件。
所以现在再次提出想法。
答案 0 :(得分:0)
终于设法解决了这个问题。这是我需要为新创建的Maven项目执行的最少必需步骤(它还依赖于工作区中的另一个项目)
在eclipse项目属性中&gt; Maven取消选中“从工作区项目中解析依赖项”
在pom文件中设置runOnIncremental为目标:war for maven-war-plugin为false
<build>
...
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>war</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnIncremental>false</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>