Service 程序JAR包部署:
1、守护进程没有主清单文件:
修改pom.xml,追加如下,“mqttjava.MqttJavaMain” 为入口类:
<build> <finalName>MqttJavaMain</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>mqttjava.MqttJavaMain</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build>
2、后台程序不能正常运行:
d:>java -jar MqttService.jar Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source) at sun.security.util.SignatureFileVerifier.process(Unknown Source) at java.util.jar.JarVerifier.processEntry(Unknown Source) at java.util.jar.JarVerifier.update(Unknown Source) at java.util.jar.JarFile.initializeVerifier(Unknown Source) at java.util.jar.JarFile.getInputStream(Unknown Source) at sun.misc.JarIndex.getJarIndex(Unknown Source) at sun.misc.URLClassPath$JarLoader$1.run(Unknown Source) at sun.misc.URLClassPath$JarLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.URLClassPath$JarLoader.ensureOpen(Unknown Source) at sun.misc.URLClassPath$JarLoader.<init>(Unknown Source) at sun.misc.URLClassPath$3.run(Unknown Source)
解决办法: 删除对应的jar 包下的文件
zip -d MqttService.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF
2、jar包守护运行:
nohup java -jar MqttService.jar >output 2>&1 &
Jenkins配置:
JAR包部署:
1、新建一个maven工程
2、配置SVN仓库&构建策略
3、循环触发,每5MIN触发方式:
4、构建策略
//stop.sh echo "Stopping kitking web" pid=`ps -ef | grep kitking02-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then echo "kill -9 的pid:" $pid kill -9 $pid fi
//replace.sh echo "kitking replace" cp -f /root/.jenkins/workspace/kitking-adv/target/kitking02-1.0-SNAPSHOT.jar /kitking/tools/ echo "copy finish target jar to kitking tools dir"
//startup.sh echo "startup kitking" java -jar /kitking/tools/kitking02-1.0-SNAPSHOT.jar
Tomcat War包部署:
PATH_TOMCAT: /kitking/tools/apache-tomcat-7.0.88 PATCH_JENKINS: /root/.jenkins/workspace/SynergyWebService/target/com.synergy.demo.war
1. 先运行TOMCAT
cd /kitking/tools/apache-tomcat-7.0.88/bin ./shutdown.sh ./startup.sh
2. Jenkis配置
Jenkins/SynergyWebService表示:
Jenkins工作空间有一个SynergyWebService项目。
root@instance-282sg05l:~/.jenkins/workspace# pwd /root/.jenkins/workspace root@instance-282sg05l:~/.jenkins/workspace# tree -L 1 . ├── kitking-adv ├── kitking-angular ├── kitking-html5 ├── SynergyWebService └── testMail
项目WAR包部署如下配置:
WAR/EAR files:表示WAR包所在位置。
Context path: 表示部署到Tomcat的应用目录名字,也代表URL的PATH部分
root@instance-282sg05l:/kitking/tools/apache-tomcat-7.0.88/webapps# pwd /kitking/tools/apache-tomcat-7.0.88/webapps root@instance-282sg05l:/kitking/tools/apache-tomcat-7.0.88/webapps# tree -L 1 . ├── docs ├── examples ├── host-manager ├── kitking ├── kitking.war ├── KKI ├── KKIOT ├── manager ├── phonePay ├── ROOT ├── RSI ├── wxpay └── XaKHgDHMAV.txt
Credentials: 表示Tomcat认证允许,在Tomcat的配置文件中配置:
root@instance-282sg05l:/kitking/tools/apache-tomcat-7.0.88/conf# pwd /kitking/tools/apache-tomcat-7.0.88/conf root@instance-282sg05l:/kitking/tools/apache-tomcat-7.0.88/conf# tree . ├── Catalina │ └── localhost ├── catalina.policy ├── catalina.properties ├── context.xml ├── logging.properties ├── server.xml ├── tomcat-users.xml └── web.xml vim ./tomcat-users.xml <tomcat-users> <role rolename="manager-gui" /> <role rolename="manager-script" /> <user username="admin" password="meiyoumima" roles="manager-gui, manager-script"/> </tomcat-users>
Tomcat URL: 这里配置好访问端口
部署后就可以访问了,部署前务必先启动Tomcat,否则Jenkins找不到部署目录(项目配置中,并没有明确配置Tomcat所在目录)。
Docker mysql镜像:
参考:
https://www.cnblogs.com/jiangzhaowei/p/10989344.html
创建kitking账户
//1. 登录阿里云 docker login --username=15900422108 registry.cn-hangzhou.aliyuncs.com //2. 基于容器创建镜像 docker commit -a 'henry' -m 'kitking mysql' 0312a49b4c9d kitking-mysql:1.0 //3. TAG docker tag c0c4cc516c2e registry.cn-hangzhou.aliyuncs.com/kitking/kitking-mysql:1.0 //4. 推送到阿里云 docker push registry.cn-hangzhou.aliyuncs.com/kitking/kitking-mysql:1.0
DB迁移:
Navicat 数据库迁移:
1.将源数据库下的表迁移出来
2.将表全部迁入目标数据库
重新连接数据库
IDEA在连接数据库时,
运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist