2

我的 EAR 项目的保存时部署选项不起作用,我不明白为什么。这是我的结构:

myproject-ear, packaging: EAR
--->myproject-core, packaging: JAR (ejbs)
--->myproject-web, packaging: WAR (.xhtml pages, some javascript and CSS)

我正在使用 maven,并且我将战争引用 JAR 作为提供的依赖项。

问题是我有一个 Nexus 存储库来处理我的 JAR 版本控制,我不会在我的 JAR 项目打开的情况下进行开发。但是,如果我关闭我的 JAR 项目然后部署应用程序,那么快速部署只会停止在 glassfish 上工作(它甚至不会在我的 EAR 目标文件夹上生成 gfdeploy,而是将所有文件复制到 glassfish 目录中)。

这是我的(简化的)pom 文件:

父项目:

<artifactId>myproject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>myproject</name>

<modules>
    <module>myproject-web</module>
    <module>myproject-ear</module>
</modules>

EAR 项目(使用 maven-ear-plugin):

<parent>
    <artifactId>myproject</artifactId>
    <groupId>mygroupid</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

<artifactId>myproject-ear</artifactId>
<packaging>ear</packaging>

<name>myproject-ear</name>

<dependencies>
    <dependency>
        <groupId>mygroupid</groupId>
        <artifactId>myproject-core</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>ejb</type>
    </dependency>
    <dependency>
        <groupId>mygroupid</groupId>
        <artifactId>myproject-web</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>war</type>
    </dependency>
</dependencies>

WAR 项目(使用 maven-war-plugin):

<parent>
    <artifactId>myproject</artifactId>
    <groupId>mygroupid</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

<artifactId>myproject-web</artifactId>
<packaging>war</packaging>

<name>myproject-web</name>

<dependencies>
    <dependency>
        <groupId>mygroupid</groupId>
        <artifactId>myproject-core</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>ejb</type>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
4

2 回答 2

3

这可能是您的 Netbeans 版本的错误。试试 Netbeans 7.3 版,看看它是否在那里工作。我提到的问题说它在 7.1.2 中有效,但我会先尝试 7.3。该问题已在 7.3 中得到解决,并且仅在 7.4/8 开发版本中再次出现问题。

于 2013-04-30T14:31:12.757 回答
1

您混合了许多不同的魔法(NetBeans、Maven、Nexus 和自动部署),而且它不能完全按照您想要的方式工作也就不足为奇了。目前尚不清楚(从抽象工具开发人员的角度来看)当您尝试在部署中包含正在积极开发的项目的最新版本(即在 Netbeans 中打开的项目)时,正确的做法是什么,但该项目是关闭。回退到 Nexus 存储库中的版本可能不是实现自动部署的 Netbeans 开发人员的想法。

我的建议是创建另一个工作区,在其中不将 JAR 作为项目包括在内,而是严格将其视为 Maven 和 NetBeans 配置中的第三方库。使用此工作区,除非您需要处理 JAR。

或者让 JAR 项目保持打开状态。

于 2013-04-27T22:34:32.747 回答