11

我正在尝试使用 Netbeans部署Java 7/8 EE 教程中的第一个示例(hello1)*,但我遇到了问题。该项目编译没有问题,但在部署时出现错误:

Failed to execute goal org.codehaus.cargo:cargo-maven2-plugin:1.4.2:redeploy (deploy) on project hello1: Execution deploy of goal org.codehaus.cargo:cargo-maven2-plugin:1.4.2:redeploy failed: Failed to create deployer with implementation class org.codehaus.cargo.container.glassfish.GlassFish4xInstalledLocalDeployer for the parameters (container [id = [glassfish4x]], deployer type [installed]). InvocationTargetException: The container configuration directory "/home/DeltaLima/glassfish4/glassfish/domains" does not exist. Please configure the container before attempting to perform any local deployment. Read more on: http://cargo.codehaus.org/Local+Configuration -> [Help 1]

与教程相反,我在 /opt/glassfish-v4 而不是 /home/DeltaLima/glassfish4 中安装了 GlassFish 服务器。在 Netbeans 中我是这样配置的,所以我可以毫无问题地启动、停止和检查服务器的状态。服务器配置中的域文件夹设置正确。

尽管如此,与 Netbeans 捆绑的 Maven 安装似乎仍希望服务器安装在用户的主目录中。

我是 Java EE、Netbeans 和 Maven 的新手,所以我没有配置 Netbeans / Maven 的经验,而且错误消息中提供的教程或链接都没有太大帮助。

您如何在 Netbeans 中设置项目以使其部署在正确的目录中?

Netbeans 版本 7.3.1
Glassfish 版本 4.0
操作系统:Ubuntu

*答案已更新以考虑 Java 8 EE

4

3 回答 3

23

在搜索了各种配置文件后,我终于找到了解决问题的方法。

Maven / Cargo 使用的域文件夹在项目目录的祖父文件夹中的 pom.xml 文件中定义。

tut-install /examples/pom.xml 中,您需要更改<glassfish.home>属性以反映您的 glassfish 安装目录。

在 JAVA 8 EE 中,引入了一个名为的属性来实现相同的目的。

此 pom.xml 中定义的设置级联到所有教程示例。

于 2013-08-13T13:47:02.287 回答
2

我解决了这个问题,将这些行添加到我的 pom.xml

<profiles>
    <profile>
        <id>windows</id>
        <activation>
            <os>
                <family>windows</family>
            </os>
        </activation>
        <properties>
            <glassfish.home>C://Program Files//glassfish-4.1.1</glassfish.home>
        </properties>
    </profile>
</profiles>   

我希望这有帮助

于 2016-06-22T16:26:02.960 回答
1

DeltaLima 的答案是正确的。但是您可以在项目中本地重载该属性。假设您已经在文件夹 /opt 中安装了 glassfish5。然后你可以将此代码添加到项目 hello1 的 pom.xml 中,就在最后一个标签 </project> 之前

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-maven2-plugin</artifactId>
            <configuration>
                <container>
                    <containerId>glassfish4x</containerId>
                    <type>installed</type>
                    <home>/opt/glassfish5</home>
                </container>
                <configuration>
                    <type>existing</type>
                    <home>/opt/glassfish5/glassfish/domains</home>
                </configuration>
            </configuration>
        </plugin>
    </plugins>
</build>
于 2021-12-30T16:43:39.040 回答