关于如何通过Maven将简单的基于maven的项目部署到远程GlassFish服务器上,我找不到明确的答案
mvn package xxx:deploy我认为只有cargo插件支持GlassFish 3,对吧?
我在配置方面遇到了问题。
任何示例远程GlassFish部署都会很棒。货物不是必须的,如果其他人支持远程GlassFish,那么我们也可以使用它。
发布于 2012-10-06 02:31:16
如果你只想使用maven-glassfish-plugin (比方说2.1版),你可以通过指定"host“参数进行远程部署。下面是一个在maven settings.xml中设置配置的示例,插件使用配置文件加载它们:
在settings.xml中定义配置文件:
<profile>
<id>production-config</id>
<properties>
<glassfish.glassfishDirectory>/var/local/glassfish/</glassfish.glassfishDirectory>
<glassfish.user>admin</glassfish.user>
<glassfish.adminPassword>adminadmin</glassfish.adminPassword>
<glassfish.domain.name>prd-domain</glassfish.domain.name>
<glassfish.domain.host>NAMEOFYOURREMOTEHOST</glassfish.domain.host>
<glassfish.domain.adminPort>10161</glassfish.domain.adminPort>
.
.
</properties>
</profile>接下来将此配置文件放入您的活动配置文件中:
<activeProfiles>
<activeProfile>production-config</activeProfile>
</activeProfiles>在maven项目pom.xml中,创建一个配置文件,并将maven-glassfish-plugin添加到您的配置文件列表中:
<profile>
<id>production</id>
<activation>
<activeByDefault>false</activeByDefault>
<os>
<arch>x86</arch>
<family>linux</family>
</os>
<property>
<name>profile</name>
<value>production</value>
</property>
<file>
<exists>
${glassfish.glassfishDirectory}/domains/${glassfish.domain.name}/config/domain.passwords
</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<configuration>
<terse>true</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>
</plugins>
</build>
</profile>这应该能起到作用。您可以使用maven : mvn glassfish:deploy -P production或仅使用mvn deploy -P production运行此配置文件(因为我们已经在插件的executions部分中添加了goal deploy )
使用上面的模型,您可以为每个环境(dev、acc、tst、prd)创建不同的配置文件,并使用不同的设置。例如,您可以创建一个开发人员配置文件,其中使用本地glassfish在其上部署和运行单元/集成测试。
人们经常犯的错误是将执行远程部署的计算机的设置与要安装部署的主机的设置混淆。glassfishDirectory是您运行部署插件的位置。由于错误,插件挂起了,什么也不做,只是等待,给人的印象是发生了什么事情。另一个错误是为远程部署指定密码文件而不是密码,这也不会产生任何结果。
发布于 2011-09-24 01:26:52
据我所知和所能找到的,只有货物交付(或部署,在这种情况下)。
这是一个在Maven OSGi WAR项目上测试的示例:
<build>
<plugins>
...
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.1.2</version>
<configuration>
<container>
<containerId>glassfish3x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.hostname>myhostname</cargo.hostname>
<cargo.remote.username>myusername</cargo.remote.username>
<cargo.remote.password>mypassword</cargo.remote.password>
</properties>
</configuration>
</configuration>
<dependencies>
<dependency>
<groupId>org.glassfish.deployment</groupId>
<artifactId>deployment-client</artifactId>
<version>3.2-b06</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>正如您所看到的,诀窍在于deployment-client依赖项。
为了完整起见,您只需使用mvn package cargo:deploy,而Bob是您的叔叔。
https://stackoverflow.com/questions/7499396
复制相似问题