我的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>
答案 0 :(得分:3)
您的Netbeans版本可能存在错误。试试Netbeans 7.3版,看看它是否有效。我提到的问题说它在7.1.2中有效,但我先给出7.3一次。该问题在7.3中得到解决,并且仅在7.4 / 8开发版本中再次破裂。
答案 1 :(得分:1)
你正在混合许多不同的魔法(NetBeans,Maven,Nexus和自动部署),并不奇怪它不能完全按照你想要的方式工作。目前尚不清楚(从抽象工具开发人员的角度来看)当您尝试在部署中包含正在开发的项目的最新版本(即在Netbeans中打开的项目)时,正确的做法是什么,但该项目是关闭。回到Nexus存储库中的版本可能不是Netbeans开发人员实施自动部署的想法。
我的建议是创建另一个工作区,其中不包含JAR作为项目,而是严格将其视为Maven和NetBeans配置中的第三方库。除了需要处理JAR之外,请使用此工作空间。
或者只是让JAR项目保持打开状态。