【问题标题】:Maven archetype for glassfish runtimeglassfish 运行时的 Maven 原型
【发布时间】:2016-08-04 13:53:20
【问题描述】:

如何使用 maven 以 glassfish 4 作为目标运行时创建 j2ee 项目?

我使用日食火星。我遵循“动态网络项目”向导,选择 glassfish 4 作为“目标运行时”。当向导结束时,我打开项目并在节点“Java 资源->库”下看到 glassfish 系统库包。

现在我将使用 maven 创建相同的项目。我已经搜索了一个原型,为我提供了相同的库包以避免部署问题,但我还没有找到一个确定的。 更接近的似乎是 jersey-quickstart-webapp 但是当我查看依赖项时,这些只是对 glassfish 运行时的尊重。这是可能的?我听起来很奇怪,也许我犯了错误,我是否遵循了正确的方法?

谢谢。

【问题讨论】:

    标签: eclipse maven glassfish archetypes


    【解决方案1】:

    我能想到的最好的是:

    mvn archetype:generate -DgroupId=mygroup -DartifactId=myapp -Dversion=1.0-SNAPSHOT
            -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=webapp-javaee7
    

    mygroupmyapp 的位置由您决定。

    然后,在生成的 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 来运行带有新构建的应用程序的服务器。

    希望你喜欢。

    【讨论】:

    • 我已经放弃了 codehaus 的原型,因为 codehaus 已经终止了所有服务。但是,您的代码是一个很好的起点。我将研究它并增加我的 Maven 知识。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2011-07-01
    • 2010-12-28
    相关资源
    最近更新 更多