Java小强个人技术博客站点    手机版
当前位置: 首页 >> 服务器 >> Jenkins将代码Build到Tomcat8

Jenkins将代码Build到Tomcat8

4681 服务器 | 2022-3-3

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。


首先安装JDK http://www.javacui.com/service/641.html 

下载Tomcat https://tomcat.apache.org/ 

解压

tar -xzf apache-tomcat-8.5.47.tar.gz

解压后移动到自定义路径,这个随意

启动tomcat

/tomcat/bin/startup.sh

停止tomcat

/tomcat/bin/shutdown.sh

注意:服务器已经关闭了防火墙,或者开放Tomcat端口


修改/tomcat/conf/tomcat-users.xml

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
	<role rolename="tomcat"/>
	<role rolename="role1"/>
	<role rolename="manager-script"/>
	<role rolename="manager-gui"/>
	<role rolename="manager-status"/>
	<role rolename="admin-gui"/>
	<role rolename="admin-script"/>
	<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>
</tomcat-users>

要注意以上内容不能出错,否则会报错

Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: 
The username you provided is not allowed to use the text-based Tomcat Manager (error 403)

自动部署的管理用户必须具有manager-script角色,manager-gui角色是不够的


修改/tomcat/webapps/manager/META-INF/context.xml

<Context antiResourceLocking="false" privileged="true" >
	<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

注释上面那个标签即可


可选修改/tomcat/conf/server.xml

<Connector port="10011" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

这里是tomcat的访问端口


重启Tomcat

访问:http://IP:10011/manager/html,输入tomcat和tomcat,登录成功说明配置生效。


安装 Deploy to container插件

Jenkins本身无法实现远程部署到Tomcat的功能,需要安装Deploy to container插件实现


这里拉取项目时已经制定了是Maven,如果是自由风格,则需要定义Pre Steps

echo "开始编译和打包"
mvn clean package
echo "编译和打包结束"

即指定构建步骤


然后构建后操作,选择Deploy war/ear to a container

jenkins.jpg


点击"Build Now",开始构建

成功后会在http://IP:10011/manager/html中看到部署的项目


END

推荐您阅读更多有关于“ maven 插件 build jenkins Tomcat8 ”的文章

上一篇:Jenkins构建触发器-触发远程构建-构建后触发-定时构建-轮询SCM 下一篇:CentOS7安装RocketMQ

猜你喜欢

发表评论:

评论:

回复 Java小强 评论于 2022-03-03 10:42
默认Maven打包时,打包出来的名字是artifactId+version,这样部署到Tomcat后感觉很别扭
如果要修改打包出来的文件名,可以在POM中增加如下配置,制定Maven打包
<build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <warName>${project.build.finalName}</warName>
                </configuration>
            </plugin>
        </plugins>
    </build>