如何使用具有glassfish 4作为目标运行时的maven创建j2ee项目?
我使用eclipse Mars。我按照动态网络项目'向导,我选择glassfish 4作为'目标运行时'。当向导结束时,我打开项目并在节点' Java资源 - >库'我可以看到glassfish系统库包。
现在我将使用maven创建相同的项目。我已经搜索了一个原型,给了我相同的库包以避免部署问题,但我还没有找到确定的问题。 更接近似乎是jersey-quickstart-webapp但是当我查看依赖关系时,这些只是对glassfish运行时的一个方面。可能吗?这听起来很奇怪,也许我犯了错误,我是否采取了正确的方法?
感谢。
答案 0 :(得分:0)
我能想出的最好的是:
mvn archetype:generate -DgroupId=mygroup -DartifactId=myapp -Dversion=1.0-SNAPSHOT
-DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=webapp-javaee7
mygroup
和myapp
由您决定。
然后,在生成的pom.xml中,添加此属性(在properties元素中):
<glassfish.version>4.1.1</glassfish.version>
在构建元素中设置最终名称(我们将很快引用它):
<finalName>myapp</finalName>
然后添加此插件以在plugins元素中配置Glassfish嵌入式运行时:
<plugin>
<groupId>org.glassfish.embedded</groupId>
<artifactId>maven-embedded-glassfish-plugin</artifactId>
<version>${glassfish.version}</version>
<configuration>
<autoDelete>true</autoDelete>
<ports>
<http-listener>8080</http-listener>
<https-listener>8181</https-listener>
</ports>
</configuration>
<executions>
<execution>
<id>deploy</id>
<goals>
<goal>deploy</goal>
</goals>
<phase>none</phase>
<configuration>
<app>target/${project.build.finalName}.war</app>
<contextRoot>/${project.build.finalName}</contextRoot>
</configuration>
</execution>
<execution>
<id>admin</id>
<goals>
<goal>admin</goal>
</goals>
<phase>none</phase>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.glassfish.main.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>${glassfish.version}</version>
</dependency>
</dependencies>
</plugin>
然后我使用mvn clean install embedded-glassfish:run
运行带有新构建应用程序的服务器。
希望你喜欢它。