我正在尝试编写一个可以使用JSF和PrimeFaces在WildFly 8,Tomcat 7和GlassFish 4上运行的应用程序。这是我的情况
WildFly 我不包含任何内容
对于 GlassFish ,我需要包含:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.5</version>
</dependency>
对于 TomCat ,我需要包含
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.5</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
我对Maven比较陌生,但我希望能够组建一个让人们“轻松”运行的项目。我会制作不同的“指令”来构建特定于Web容器的版本吗?我需要3个独立的pom文件吗? maven有条件包括吗?我是否有pom-tomcat.xml pom-glassfish.xml pom-wildfly.xml,不知何故你指向其中一个文件并包含其他内容?
任何建议都会有所帮助。
由于
答案 0 :(得分:1)
我认为使用Maven实现它的最简单方法是使用Maven profiles,例如:
<profiles>
<profile>
<id>tomcat</id>
<dependencies>
<dependency><!--tomcat dependencies--></dependency>
</dependencies>
</profile>
<profile>
<id>glassfish</id>
<dependencies>
<dependency><!--glassfish dependencies--></dependency>
</dependencies>
</profile>
</profiles>
然后你可以为glassfish或tomcat构建它:
mvn -P glassfish
mvn -P tomcat
(旁边的问题是为什么不在所有情况下都包含所有相同的依赖项?)