NetBeans 7.3.1 具有很好的能力,可以将例如 JSF 页面增量部署到 Glassfish 服务器,这使得更改几乎立即可见。
但是,此功能似乎不适用于远程Glassfish 4 实例:每当我保存日志文件中没有发生任何其他事情时,当我点击“运行”时,它会运行 Maven“war:war”目标,然后将 .war 部署到远程服务器使用“asadmin”。
有人知道这是否是“记录在案”的限制,还是我只是做错了什么?(JRebel 可能会有所帮助,我知道,但我希望在没有它的情况下完成它。也许它只有在 NetBeans 可以直接写入本地 $domain/autodeploy/ 目录时才有效,但这只是一个猜测)
我的项目使用以下 NetBeans 项目属性:
- 构建 -> 编译 -> 保存时编译:适用于应用程序和测试
- 运行 -> Java EE 版本:Java EE 6 Web
- 运行 -> 保存时部署:选中
pom.xml 包含以下相关插件:
<profiles>
<!-- References deployment settings in ~/.m2/settings.xml -->
<profile>
<id>devel-pom-build-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>profile</name>
<value>webmanager-bl-devel-settings-profile</value>
</property>
</activation>
</profile>
....
</profiles>
...
<build>
<plugins>
...
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.1</version>
<configuration>
<terse>false</terse>
<echo>true</echo>
<debug>true</debug>
<glassfishDirectory>${glassfish.glassfishDirectory}</glassfishDirectory>
<user>${glassfish.user}</user>
<adminPassword>${glassfish.adminPassword}</adminPassword>
<domain>
<name>${glassfish.domain.name}</name>
<host>${glassfish.domain.host}</host>
<adminPort>${glassfish.domain.adminPort}</adminPort>
</domain>
<components>
<component>
<name>${project.artifactId}</name>
<artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
</component>
</components>
</configuration>
<executions>
<execution>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
我在这里发现的所有其他问题要么是关于我使用 maven-glassfish-plugin 完成的部署应用程序的一般方式,要么似乎是指尚未具有“保存时部署”功能的旧版本 NetBeans项目设置。(但如果我错过了请纠正我)