`

基于DAV协议部署Maven站点

阅读更多

一、配置Web服务器
    本文使用Tomcat,新建一个支持WebDav的应用。
    在webapps下新建一个名为“sites”的应用(名称任意),在WEB-INF的web.xml文件中添加如下内容,启用Webdav并配置权限:

    <display-name>sites</display-name>

    <!-- Enabling the WebDav Servlet -->
    <servlet>
        <servlet-name>webdav</servlet-name>
        <servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
        </init-param>

        <!-- Read-Write Access Settings -->
        <init-param>
            <param-name>readonly</param-name>
            <param-value>false</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>webdav</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>sites</web-resource-name>
            <!-- Detect WebDAV Methods in URL For Whole Application -->
            <url-pattern>/*</url-pattern>
            <http-method>PROPFIND</http-method>
            <http-method>PROPPATCH</http-method>
            <http-method>COPY</http-method>
            <http-method>MOVE</http-method>
            <http-method>LOCK</http-method>
            <http-method>UNLOCK</http-method>
        </web-resource-collection>

        <!-- Restrict access by role -->
        <auth-constraint>
            <role-name>*</role-name>
        </auth-constraint>
    </security-constraint>

    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>sites</realm-name>
    </login-config>

    <security-role>
        <description>WebDAV User</description>
        <role-name>webdav</role-name>
    </security-role>

    在conf/tomcat-users.xml中添加webdav角色和用户,如下:
    <role rolename="webdav"/>
    <user username="webdavuser" password="password" roles="webdav"/>

    配置完以后,重启tomcat。

    tomcat webdav配置参见 http://www.mulesoft.com/tomcat-webdav

二、pom中的site配置
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.1</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.maven.wagon</groupId>
                            <artifactId>wagon-webdav-jackrabbit</artifactId>
                            <version>2.2</version>
                        </dependency>
                        <dependency>
                            <groupId>org.slf4j</groupId>
                            <artifactId>slf4j-nop</artifactId>
                            <version>1.5.11</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <reporting>
        ....
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.4</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>index</report>
                            <report>dependencies</report>
                            <report>project-team</report>
                            <report>mailing-list</report>
                            <report>cim</report>
                            <report>issue-tracking</report>
                            <report>license</report>
                            <report>scm</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>

    <distributionManagement>
        <site>
            <id>SiteServer</id>
            <name>Site Server</name>
            <url>dav:http://127.0.0.1:8080/sites</url>
        </site>
    </distributionManagement>
    注意,为maven-site-plugin插件增加webdav协议支持时,要同时增加slf4j-nop,否则会报"Failed to load class "org.slf4j.impl.StaticLoggerBinder"错误。


三、配置WebDAV用户名与密码
    在Maven的settings.xml文件中增加WebDAV认证的用户名与密码。
    <servers>
    <server>
        <id>SiteServer</id>
        <username>webdavuser</username>
        <password>password</password>
    </server>
    </servers>


四、部署站点
    运行site:deploy,部署成功后访问http://127.0.0.1:8080/sites,会显示部署目录。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics