在jenkins上的maven构建完成之后,我试图将webapp.war复制到tomcat的webapp文件夹中。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.8</version> <executions> <execution> <id>copy-webapp-to-tomcat</id> <phase>install</phase> <goals> <goal>run</goal> </goals> <configuration> <target name="Deploying webapp to Tomcat."> <copy todir="${tomcat.webapps.dir}" force="true"> <fileset dir="${project.build.directory}"> <include name="*.war" /> </fileset> </copy> </target> </configuration> </execution> </executions> </plugin>
我将詹金斯用户添加到tomcat组
$ id -Gn jenkins jenkins tomcat
和我的webapps文件夹权限看起来像
drwxrwxr-x 10 tomcat tomcat 4,0K Aug 13 17:24 webapps/
构建完成后,复制失败并显示
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (copy-webapp-to-tomcat) on project: An Ant BuildException has occured: Failed to copy /var/lib/jenkins/workspace/project/target/webapp.war to /opt/tomcat/webapps/webapp.war due to java.io.FileNotFoundException /opt/tomcat/webapps/webapp.war (Permission denied) [ERROR] around Ant part ...<copy todir="/opt/tomcat/webapps" force="true">... @ 4:50 in /var/lib/jenkins/workspace/project/target/antrun/build-Deploying webapp to Tomcat..xml
当我向其他用户添加webapps文件夹的写权限时
drwxrwxrwx 10 tomcat tomcat 4,0K Aug 13 17:24 webapps/
复制成功,我得到一个文件
-rw-r--r-- 1 jenkins jenkins 22M Aug 13 17:48 webapp.war
jenkins用户是tomcat组的成员,并且该组具有webapps文件夹的写许可权,这还不够吗?
thx,kopi
请研究战争部署插件,而不要使用复制方法。它将使您将来也可以将war文件部署在远程服务器上。我已经完成了角度应用的战争部署。
您可以参考以下链接以获取更多详细信息
https://www.packtpub.com/mapt/book/application_development/9781783553471/4/ch04lvl1sec33/deploying- a-war-file-from-jenkins-to- tomcat