Deploy webapp to Tomcat after Maven build on Jenkins

别说谁变了你拦得住时间么 提交于 2019-12-22 18:12:06

问题


i'm trying to copy the webapp.war to the tomcat's webapp folder after the maven build on the jenkins has finished.

<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>

i added the jenkins user to the tomcat group

$ id -Gn jenkins
jenkins tomcat

and my webapps folder permissions look like

drwxrwxr-x 10 tomcat tomcat 4,0K Aug 13 17:24 webapps/

after the build is completed, the copying fails with

[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

when i add the write permissions to the other users for the webapps folder

drwxrwxrwx 10 tomcat tomcat 4,0K Aug 13 17:24 webapps/

the copying succeeds and i get a file

-rw-r--r--  1 jenkins jenkins  22M Aug 13 17:48 webapp.war

shouldn't it be enough that the jenkins user is a member of the tomcat group and this group has the write permission for the webapps folder?

thx, kopi


回答1:


Please research for war deployment plugin instead using copy method. It will let you deploy war file on remote servers also in future. I have done war deployment for angular application.

  1. Create a manager-script role user for your tomcat server.
  2. Install Deploy to container plugin in Jenkins
  3. Go to configuration of your Jenkins job and select option Deploy to container option in post build action.
  4. Enter all details with tomcat username and password and save configuration.
  5. Enjoy automatic war deployment in Jenkins after build process.

You can refer following link for more details

https://www.packtpub.com/mapt/book/application_development/9781783553471/4/ch04lvl1sec33/deploying-a-war-file-from-jenkins-to-tomcat



来源:https://stackoverflow.com/questions/45662176/deploy-webapp-to-tomcat-after-maven-build-on-jenkins

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!