本文为需要的大体配置,并非详细流程
liunx端已有tomcat,maven,git,jdk
jenkins配置
https://www.jenkins.io/download/
下载war包放入tomcat中
下载publish over SSH1.22插件
全局工具配置:
git:
name:随便填
Path to Git executable: /usr/local/libexec/git-core/git
jdk:
name:随便填
JAVA_HOME:/usr/local/software/jdk1.8.0_321
Maven:
Name:maven3
MAVEN_HOME:/usr/local/software/apache-maven-3.6.1
系统配置:
Jenkins Location:
Jenkins URL:
http://192.168.0.244:8091/jenkins/
Publish over SSH:
Key:liunx密匙 #需要服务器配置无钥匙登陆
SSH Servers:
Name:测试服务器
Hostname:192.168.0.244
Username:root
Remote Directory:/usr/local/software/tomcat8
全局凭据(unrestricted):
用户名:960361378@qq.com
密码:码云密码
构建:
源码管理:
git:
Repository URL:git@gitee.com:woxiangtiantianmoyu/cicd.git
Credentials:刚才的码云账号
构建:
调用顶层maven目标:
maven版本:全局的maven
目标:package
send files or execute commands over ssh:
ssh Publishers:
SSH server:
name :系统配置的服务器
Transfers:
source files: target/demo2-0.0.1-SNAPSHOT.war #固定target+jar包名
remove prefix:target/ #固定
remote Directory:webapps/demo
Exec command: mv /usr/local/software/tomcat8/demo/demo2*.war /usr/local/software/tomcat8/demo/demo.war
java pom文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>demo2</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- war包配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- 热部署配置 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat8-maven-plugin</artifactId>
<version>3.0-r1655215</version>
<configuration >
<path>/</path>
<port>8080</port>
</configuration>
</plugin>
</plugins>
</build>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<layout>default</layout>
<!-- 是否开启发布版构件下载 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 是否开启快照版构件下载 -->
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
springboot一些配置
#新建这个类 或者 讲方法加入Application中 用来打war包
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Demo2Application.class);
}
}
tomcat的conf中的tomcat-users.xml
给Tomcat配置用户名和密码,热部署必须要有用户名和密码
<role rolename=”manager-gui”/>
<role rolename=”manager-script”/>
<user username=”tomcat” password=”123456”
roles=”manager-gui, manager-script”/>
或者
##未测试
在tomcat\conf\server.xml中的<host></host>内部添加<context/>标签:
<Context debug="0" docBase="D:\demo1\web" path="/demo1" privileged="true" reloadable="true"/>
免密配置
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub 用户名字@192.168.x.xxx
service sshd restart
码云:设置:SSH公钥中配置pub
tomcat多服务配置
#名字随便写不重复就行
<Service name="Catalina">
#每个服务的端口号
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
#appBase是目录名,改为自己的比如webapps1,2,4
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
<Service name="Catalina2">
<Connector port="8091" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="jenkins"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>