一、配置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,会显示部署目录。