一、Project不同图例的含义
-
什么是图例,就是构建状态和编译晴雨表
了解这个对每个使用jenkins是非常有必要的,左边第一个蓝色球的表示上次构建的状态,当前蓝色表示成功。第二个太阳那个图标表示上次编译的晴雨表,类似天气预报的感觉。鼠标悬停小太阳,显示:构建稳定,当前没有构建失败。想要了解更多状态的含义,点击图例这个链接。
由太阳变成雷阵雨图标。如果看到你项目变成阴云或者下雨,说明你的项目稳定性不好,就问题,就需要去查找问题,解决问题。
二、Jenkins自动构建部署项目到远程服务器
- Publish Over SSH用于连接远程服务器
- Deploy to container插件用于把打包的应用发布到远程服务器
-
构建项目,部署项目到远程服务器
名称 | 说明 |
---|---|
Passphrase | 服务器的密码 |
Path to key | 连接远程服务器密钥文件的路径 |
Key | 密钥文件的内容 |
Name | 自定义服务器名 |
HostName | 服务器IP外网地址 |
UserName | 服务器用户名 |
Remote Directory | 传输文件的目录,例: \nevo 该目录必须存在。 |
远程连接:
[root@localhost ~]# ssh root@192.168.77.132
root@192.168.77.132's password:
三、构建后操作
在Job设置中“添加构建步骤”里选择“Send files or execute commands over SSH”,即能够Job中使用Publish over SSH插件。
參数说明
Name
“系统管理>系统设置”设置的SSH Sverver的名字列表。
Source files
需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)注意:如果是多成子目录的需要配置成 target//
拷贝到运程机上的文件。相对workspace的路径,也支持表达式,如上图中的“/.jar”。
# 目录
/var/lib/jenkins/workspace/
# 配置为
**/**/target/*.jar
Remove prefix
移除目录(只能指定Transfer Set Source files中的目录,这里移除了target目录表示只将xxx.jar传到目标服务器,否则会在目标服务器创建target目录)。
# 配置为
nevo-config/target/
Remote directory
文件得到到远程机上的文件夹,此文件夹是相对于“SSH Server”中的“Remote directory”的。假设不存在将会自己主动创建。可以为空,如果不为空,将会自动在远程目录下创建目录,例:
远程目录配置为:\root Remote directory配置为: nevo 则会在目标服务器,生成目录:
root/nevo
Exec command
:把你要执行的命令写在里面(这里的命令是在目标服务器上执行的)
参考二的脚本配置。
附:
启动tomcat脚本:
# 运行脚本
bash 脚本文件
内容:
#! /bin/bash
tomcat_home=/usr/local/tomcat-8
SHUTDOWN=$tomcat_home/bin/shutdown.sh
STARTTOMCAT=$tomcat_home/bin/startup.sh
echo "关闭$tomcat_home"
$SHUTDOWN
#杀死tomcat进程
ps -ef|grep $path|grep java|awk '{print $2}'|xargs kill -9
#删除日志文件,如果你不先删除可以不要下面一行
rm $tomcat_home/logs/* -rf
#删除tomcat的临时目录
rm $tomcat_home/work/* -rf
sleep 5
echo "启动$tomcat_home"
$STARTTOMCAT
#看启动日志
#tail -f $tomcat_home/logs/catalina.ou
四、常见问题:
- must be present in all file paths
原因:
路径不可以带通配符。
例:
不可以为:
**/**/target/
必须为:
nevo-config/target/
springboot项目用maven打包,为什么在生成jar包的同时还生产.original文件?
原因:
.jar.original是上一次打包的备份文件
您还应该在target目录中看到一个更小的文件xxx-0.0.1-SNAPSHOT.jar.original。这是Maven在Spring Boot重新打包之前创建的原始jar文件。
可以用jar tvf target/xxx-0.0.1-SNAPSHOT.jar.original查看文件内容。
可以看出original文件只包含少量用户的类,不包含依赖。如果包含依赖的.jar叫 fat jar, 那这个就是瘦jar了。
spring-boot:repackage,默认goal。在mvn package之后,再次打包可执行的jar/war,同时保留mvn package生成的jar/war为.original需要加入spring-boot-maven-plugin这个插件
root pom 指向的是最顶级的pom.xml
clean install -pl 一极模块/二极模块 -am -amd -Pdev -Dmaven.test.skip=true
这样就单独构建二极这个jar,相关依赖也会构建好,不用将依赖提前放入maven仓库。多级模块构建
clean package -pl nevo-service/user-service -am
- spring boot通过命令行配置属性
java -jar xxx.jar --server.port=8888
通过使用–-server.port属性来设置xxx.jar应用的端口为8888。
在命令行运行时,连续的两个减号–就是对application.properties中的属性值进行赋值的标识。所以,java -jar xxx.jar --server.port=8888命令,等价于我们在application.properties中添加属性server.port=8888
java -jar xxx.jar --spring.profiles.active=test
指定配置文件。