詹金斯服务器上的maven站点插件问题

Posted

技术标签:

【中文标题】詹金斯服务器上的maven站点插件问题【英文标题】:maven site plugin issue on jenkins server 【发布时间】:2016-10-06 19:35:15 【问题描述】:

当我在本地运行 maven build 时,我使用 spring boot 开发了一个项目,它运行良好,当我在 Jenkins 服务器上部署时,在记录时构建失败。这是我的 pom 文件。

<?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.companyname.services</groupId>
    <artifactId>sample project</artifactId>
    <version>0.0.2-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>sample project</name>
    <description>Demo project </description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <additionalparam>-Xdoclint:none</additionalparam>
    </properties>

    <scm>
        // git urls
    </scm>

    <distributionManagement>
        <snapshotRepository>
            <id>xyz-snapshots</id>
            <name>xyz-snapshots</name>
            <url>urlname</url>
        </snapshotRepository>
        <repository>
            <id>xyz-releases</id>
            <name>xyz-releases</name>
            <url>urlname</url>
        </repository>
        <site>
            <id>app-site-deploy</id>
            <url>dav:http://xyzcomzpny.com/projects/doc/</url>
        </site>
    </distributionManagement>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency> 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!--  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency> -->
        <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
        <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
        </dependency>
            <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>

            </dependency>


    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

当我们在 jenkins 上部署时,它显示以下错误: 不支持的协议:“dav”,用于将站点部署到 dav:http://xyzcomzpny.com/projects/doc/。当我在其他项目中使用站点标签时,它起作用了。是什么导致构建失败?我必须在我的 pom 文件中添加任何标签吗?

【问题讨论】:

【参考方案1】:

来源:https://www.mkyong.com/maven/how-to-deploy-site-with-mvn-site-deploy-webdav-example/

您是否尝试声明 Wagon Dav 扩展?

<build>
    <extensions>
        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-webdav-jackrabbit</artifactId>
            <version>1.0-beta-7</version>
        </extension>
    </extensions>
</build>

【讨论】:

以上是关于詹金斯服务器上的maven站点插件问题的主要内容,如果未能解决你的问题,请参考以下文章

通过詹金斯上的 Maven 作业导致的飞路迁移错误

Maven 发布插件部署问题

将 maven 项目集成到 svn 版本的 jenkins 中

如何在远程主机上的詹金斯中传递 $BUILD_NUMBER

五分钟教程:如何在Docker当中运行平行测试

编写 Maven2 站点插件时获取站点资源列表的最佳方法是啥?