使用 Maven 和 Glassfish 进行简单的远程部署

Simple remote deployment with Maven and Glassfish

我正在尝试使用 Maven、Glassfish 和 Maven-Glassfish-plugin 设置基本部署管道。我想在我拥有的远程 glassfish 服务器上远程部署 .war。

我正在学习本教程:https://programmaticponderings.wordpress.com/2013/11/04/continuous-integration-and-deployment-using-git-maven-jenkins-and-glassfish/

当我必须 运行 具有以下目标的 Maven 目标时,我卡在了某个步骤:

properties:read-project-properties clean install glassfish:redeploy -e

具有以下属性:

glassfish.properties.file.argument=testing

pom.xml 看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.blogpost</groupId>
    <artifactId>HelloGlassFishMaven</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>HelloGlassFishMaven</name>

    <properties>
        <!-- Input Parameter - GlassFish properties file -->
        <glassfish.properties.file.argument></glassfish.properties.file.argument>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-servlet</artifactId>
            <version>1.19</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
                    <webresources>
                        <resource>
                            <directory>${basedir}/src/main/webapp/WEB-INF</directory>
                            <filtering>true</filtering>
                            <targetpath>WEB-INF</targetpath>
                            <includes>
                                <include>**/glassfish-web.xml</include>
                            </includes>
                        </resource>
                    </webresources>
                </configuration>            
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>7.0</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <version>1.0-alpha-2</version>
                <configuration>
                    <files>
                        <file>${basedir}/properties/${glassfish.properties.file.argument}.properties</file>
                    </files>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.glassfish.maven.plugin</groupId>
                <artifactId>maven-glassfish-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                        <glassfishDirectory>D:\CreepyStation\Work\Virtual environment\GlassFishInpuJavaEE\glassfish</glassfishDirectory>
                    <user>${glassfish.user}</user>
                    <passwordFile>${basedir}/passwords/${glassfish.pwdfile}</passwordFile>
                    <echo>true</echo>
                    <debug>true</debug>
                    <terse>true</terse>
                    <domain>
                        <name>${glassfish.domain}</name>
                        <host>${glassfish.host}</host>
                        <adminPort>${glassfish.adminport}</adminPort>
                        <httpPort>6061</httpPort>
                    </domain>
                    <components>
                        <component>
                            <name>${project.artifactId}</name>
                            <artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
                        </component>
                    </components>
                </configuration>  
            </plugin>
        </plugins>
    </build>

</project>

它使用具有以下参数的 .properties 文件(到我的远程 Glassfish 域)

# GlassFish 4 testing domain properties
glassfish.domain=testing
glassfish.host=XX.XX.XX.XX
glassfish.adminport=6060
glassfish.user=admin
glassfish.pwdfile=pwdfile_testing

据我了解:

它挂起几分钟并给我一个错误,这是错误日志(很多行因为我已经激活调试,错误在文件末尾):

http://pastebin.com/Fv6LvWkk

这快把我逼疯了,我花了无数个小时试图解决这个问题,但到目前为止运气不好。

非常感谢!

不是真正的修复,但我使用了 Cargo 插件而不是 Maven-To-Glassfish 插件,它现在工作正常。