Jenkins远程部署war包到tomcat

导读:本篇文章讲解 Jenkins远程部署war包到tomcat,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

网上关于这个的文章也是数不胜数了,但是稍不注意还是会掉坑里了,好不容易配置成功在这里记录一下。 关于怎么搭建Jenkins自动构建之前已经写过,这里就再补充一下自动远程部署的情况。

准备

在开始之前,服务器上需要有安装好环境,如:JDK,Tomcat等 配置好环境变量同时,在Jenkins和Gitlab上创建好项目

项目文件配置

来依次看一下关于项目的文件配置,包括Maven的配置等。

pom.xml配置

<packaging>war</packaging>

<properties>
  <warPackageName>spring</warPackageName>
  <tomcat.deploy.server>tomcat8</tomcat.deploy.server>
  <tomcat.deploy.serverUrl>http://192.168.1.2:8088/manager/text</tomcat.deploy.serverUrl>
</properties>

<build>
    <finalName>spring</finalName>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <version>1.1</version>
        <configuration>
          <server>${tomcat.deploy.server}</server>
          <url>${tomcat.deploy.serverUrl}</url>
          <path>/${warPackageName}</path>
        </configuration>
      </plugin>
    </plugins>
  </build>

我这里tomcat版本使用的8,如果使用的是tomcat6.x的话,serverUrl需要改为http://192.168.1.2:8080/manager。 在这里<tomcat.deploy.server>tomcat8</tomcat.deploy.server>,其中tomcat8是需要在Maven的.settings.xml文件中配置的。

Maven settings配置

~/.m2/.settings.xml

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
        <id>nexus-snapshots</id>
        <username>admin</username>
        <password>lhy123</password>
    </server>
    <server>
        <id>tomcat8</id>
        <username>deployer</username>
        <password>dev</password>
    </server>
  </servers>

  <mirrors>
      <mirror>
          <id>nexus</id>
          <name>internal nexus repository</name>
          <url>http://192.168.1.2:8081/repository/maven-central/</url>
          <mirrorOf>*</mirrorOf>
      </mirror>
  </mirrors>

</settings>

在这里主要是看server中的tomcat8配置,需要tomcat的用户名和密码。至于其他的是关于nexus的配置,以后有机会再写一篇详细说明Nexus的吧。 tomcat的用户名和密码就需要我们到服务器上去配置了。

服务器配置

服务器上主要是tomcat用户配置Maven settings配置。 是的,本地配置那个是方便在本地就可以直接部署到服务器,但是如果是用Jenkins来帮我们自动的部署的话就需要在服务器上也配置一下Maven Settings了,否则在构建好后是无法进行远程部署的,因为不知道tomcat的用户名和密码。 在这里我们直接复制本地的.settings.xml文件到服务器就好,也有个地方需要注意了。 .settings.xml这个文件不是随便放的,需要放到启动jenkins的用户的那个home目录下面的.m2/目录中。 因为我是直接从下载了war包,然后丢到tomcat中运行的。 所以这里我需要将.settings.xml文件放到/usr/share/tomcat8/.m2/中。 需要注意的是文件权限问题,我是为了偷懒直接用系统# apt-get install tomcat8安装的,系统会自动创建tomcat8用户。 所以还需要额外执行一条命令:# chown tomcat8:tomcat8 .settings.xml即可。

注意:后面发现只安装tomcat8还不行,在Debian中这样是没有admin和user模块的,也就是还是不能上传。需要再执行这个命令安装额外的模块: apt install tomcat8-*

如果是自己从下载的压缩包的话,就看你启动tomcat服务用的哪个系统用户了,就把.settings.xml文件丢到那个用户的$HOME/.m2/下即可。

tomcat配置

先在tomcat用户配置文件中添加一个用户,并给予manager-script权限就行。 在我这里是编辑/etc/tomcat8/tomcat-users.xml文件

<tomcat-users>
    <role rolename="admin-gui"/>
    <role rolename="manager-gui"/>
    <user username="tomcat" password="tomcat" roles="admin-gui,manager-gui"/>
    <user username="deployer" password="dev" roles="manager-script"/>
 </tomcat-users>

主要看deployer这个用户就行了。

Jenkins构建配置

好了,最后再说一下,在Jenkins中执行的构建命令 maven-build) 这里需要注意,执行的是mvn tomcat:redeploy。 网上很多教程说的是mvn tomcat7:redeploy,我这边死活不行,总是报错No plugin found for prefix 'tomcat7' in the current project. 暂时不知道是什么原因,先不管了。

总结

做开发的就是一路趟坑啊,尤其是web方面。感觉就这么一点小小的东西都折腾了好一番,真是路漫漫兮其修远矣。但是为了前途咱还是得一路顶上去呢,吾必将上下而求索~

致还在年轻奋斗的我们。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2078.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!