gitlab & jenkins & tomcat
JDK:
- jdk下载网址:https://www.oracle.com/java/technologies/javase-jdk14-downloads.html
- JAVA_HOME ==> C:\Program Files\Java\jdk-14.0.1
- CLASSPATH ==> .,%JAVA_HOME%\lib
- PATH ==> %JAVA_HOME%\bin
- IDEA部署tomcat
https://blog.csdn.net/czc9309/article/details/80304074
Tomcat:
- CATALINA_HOME ==> C:\Program Files\apache-tomcat-9.0.36
- PATH ==> %CATALINA_HOME%\bin
- apache-tomcat-9.0.36 ==> Properties ==> security ==> Users ==> Full control 否则404
- catalina.bat start
gitlab:
- /etc/gitlab/gitlab.rb
- external_url 'http://IP:888'
- nginx['listen_port']=888
- gitlab-ctl reconfigure
- gitlab-ctl restart
- firewall-cmd --zone=public --permanent --add-port=82/tcp
- firewall-cmd reload
- root ==> password
- create group ==> notary_group
- create project ==> notary_group/web_demo(private)
- create user ==> artifact1(regular)
add artifact1 to web_demo- Guest: create issue,leave comment,can not clone or download the project code
- Reporter: clone download the project code,can not submit
- Developer: normal developer
- Maintainer: core developer
- VCS ==> Enable Version Control Intergration ==> git
- project ==> git ==> add(本地缓存区)
- project ==> git ==> commit(本地仓库)
- project ==> git ==> Repository ==> Remotes ==> Add gitlab http://192.168.8.6:888/notary_group/web_demo.git
- project ==> git ==> Repository ==> Push
Jenkins:
配置文件/etc/sysconfig/jenkins
启动脚本/etc/rc.d/init.d/jenkins
JENKINS_USER="jenkins"
JENKINS_PORT="8080"
镜像加速:
sed -ri -e 's@http://updates.jenkins-ci.org/download@https://mirrors.tuna.tsinghua.edu.cn/jenkins@g' -e 's@http://www.google.com@http://www.baidu.com@g' default.json
Update Site: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
Plugin1: Role-based Authorization Strategy
Configure Global Security ==> Authorization ==> Role-Based Strategy
Manage and Assign Roles ==> Manage Roles:
1 2 3 4 5 | Global roles: baseRole (Overall => read) Item roles: role1(Pattern: project1.*) Item roles: role2(Pattern: project2.*) |
Manager Users ==> create user ==> user1 & user2
Manage and Assign Roles ==> Assign Roles
Plugin2: Credentials Binding
Plugin3: git
Plugin4:
- JAVA_HOME=/usr/lib/jvm/java
- MAVEN_HOME=/usr/local/maven
- PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
- mvn -v && java -version
- Global Tool Configuration: JDK && MAVEN
- Confiugre System ==> Global properties ==> Environmen variables
1 2 3 4 5 | JAVA_HOME ==> /usr/lib/jvm/java M2_HOME ==> /usr/local/maven PATH+EXTRA ==> $M2_HOME/bin |
1 2 3 4 5 6 7 | <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>https: //maven.aliyun.com/repository/public</url> <mirrorOf>*</mirrorOf> </mirror> <localRepository>/usr/local/maven/repo</localRepository> #注意repo目录权限 |
https://developer.aliyun.com/mirror/maven?spm=a2c6h.13651102.0.0.3e221b11SMxdFv
Build ==> Execute shell ==> echo 'start build';mvn clean package;echo 'build complete'
Tomcat:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | conf/tomcat-users.xml <tomcat-users> <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> webapps/manager/META-INF/context.xml <!-- <Valve className= "org.apache.catalina.valves.RemoteAddrValve" allow= "127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --> |
Plugin:5 Deploy To Container
Post-build Actions:
Deploy war/ear to a container ==> WAR/EAR ==> target/*.war ==> Containers ==> TomcatURL ==> http://IP:8080
Plugin:6 Maven intergration
build ==> Goals and options ==> clean package (无需加maven)
Plugin:7 pipeline
示例一:
pipeline {
agent any
stages {
stage('pull code') {
steps {
echo 'pull code'
}
}
stage('build project') {
steps {
echo 'build project'
}
}
stage('publish project') {
steps {
echo 'publish project'
}
}
}
}
Sample Step: pipeline syntax ==> 片段生成器
- checkout: Checkout from version control
- sh: Shell Script ==> mvn clean package
- deploy: Deploy war/ear to a container
Pipeline ==> Pipeline script from SCM ==> SCM ==> git
构建触发器:
1:Trigger builds remotely
2:build after other project are built
3: Poll SCM
4: Gitlab webhook plugin(Gitlab Gitlab Hook)
gitlab:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律