目录
[1. jdk17+](#1. jdk17+)
[2.apache maven 3.8.6](#2.apache maven 3.8.6)
[Jenkins 的优点:](#Jenkins 的优点:)
[Jenkins 的缺点:](#Jenkins 的缺点:)
jenkins简介
Jenkins 是一个开源的自动化服务器,可以用于自动化各种任务,包括构建、测试和部署软件。Jenkins 支持多种插件,使其能够与几乎所有流行的软件工具集成,如 Git、Subversion、Maven、Ant、Docker 等。
以下是 Jenkins 的一些主要特点:
-
自动化构建和测试:Jenkins 可以自动执行构建和测试过程,帮助开发者快速发现代码中的错误。
-
持续集成(CI):Jenkins 支持持续集成,即频繁地将代码变更集成到主分支中,确保代码的稳定性。
-
持续部署(CD):通过 Jenkins,可以实现持续部署,自动化地将软件部署到生产环境中。
-
插件生态系统:Jenkins 拥有一个庞大的插件生态系统,这些插件可以扩展 Jenkins 的功能,使其能够适应不同的开发和部署需求。
-
分布式构建:Jenkins 支持分布式构建,可以在多台机器上并行执行任务,提高构建速度。
-
易于配置:Jenkins 提供了 Web 界面,使得配置和管理任务变得简单。
-
丰富的社区支持:由于 Jenkins 是开源的,它拥有一个活跃的社区,社区成员会贡献新的插件和功能,同时也提供支持和帮助。
-
可扩展性:Jenkins 可以通过编写自己的插件或使用现有的插件来扩展其功能。
-
多平台支持:Jenkins 可以在多种操作系统上运行,包括 Windows、Linux 和 macOS。
-
安全性:Jenkins 提供了多种安全机制,包括用户认证和授权,确保构建过程的安全性。
Jenkins 通常用于软件开发的自动化流程中,帮助团队提高效率,减少人为错误,并加快软件交付的速度
前置依赖
1. jdk17+
oracle jdk 下载地址: Java Downloads | Oracle
openjdk 下载地址:https://openjdk.org/install/
2.apache maven 3.8.6
下载地址: Maven -- Download Apache Maven
3.git
4.docker
安装可参考 windows10 vagrant+VirtualBox安装docker_vagrant 6.0下载-CSDN博客
5.下载jenkins
下载地址:https://get.jenkins.io/war/
启动配置jenkins
bash
启动命令:java -jar -Dpermissive-script-security.enabled=true -Djava.awt.headless=true -Xmx1024m jenkins.war --httpPort=10000
启动后访问http://127.0.0.1:10000端口,按照默认安装模式,等待安装完成后进入到主页面
进入系统管理
找到全局工具配置
配置maven
配置git,用于拉取代码,配置完成后应用并保存。
编写部署的jenkins.groovy代码,用于构建流水线发布,该文件位置在您实际的项目代码根目录。内容仅仅为演示,流程步骤可自行拓展。
请将文件中的服务目录、应用名称、景象仓库地址等换成您实际地址。
Groovy
def createVersion() {
return new Date().format('yyyyMMddHHmmss') + "_${env.BUILD_ID}"
}
def createVersionTime() {
return new Date().format('yyyyMMddHHmmss')
}
pipeline {
agent any
environment {
_APP_NAME = '你的应用名称'
_APP_VERSION = '1.0.0'
_VERSION = "${_APP_VERSION}_${createVersion()}"
_HARBOR_TAG = "-dev-${createVersionTime()}"
}
stages {
stage('Build') {
steps {
echo 'Building..'
sh "cd ${env.WORKSPACE}"
sh 'source ~/.bash_profile'
sh 'mvn clean install -am -Dmaven.test.skip=true'
}
}
stage('Build Docker') {
steps {
echo 'Build ..'
sh "mv ${env.WORKSPACE}/服务目录/target/服务目录-1.0.jar ${env.WORKSPACE}/服务目录/"
sh "cd ${env.WORKSPACE}/服务目录/"
sh "chmod +x ${env.WORKSPACE}/服务目录/服务目录-1.0.jar"
sh "chmod 777 ${env.WORKSPACE}/服务目录/服务目录-1.0.jar"
sh "docker build --rm -t ${env._APP_NAME}:${env._VERSION} -f ${env.WORKSPACE}/服务目录/Dockerfile ${env.WORKSPACE}/服务目录/"
}
}
stage('push Docker') {
steps {
echo 'docker tag ..'
sh "docker tag ${env._APP_NAME}:${env._VERSION} 镜像仓库地址/目录/${env._APP_NAME}:${env._VERSION}"
sh "docker login harbor镜像仓库地址 -u 用户名 -p 密码"
sh "docker push 镜像仓库地址/目录/${env._APP_NAME}:${env._VERSION}"
sh "docker tag ${env._APP_NAME}:${env._VERSION} 镜像仓库地址/目录/${env._APP_NAME}:latest"
sh "docker push 镜像仓库地址/目录/${env._APP_NAME}:latest"
}
}
}
}
编写Dockerfile文件,并将它放 到服务目录/Dockerfile 的位置。
bash
FROM openjdk:11
EXPOSE 8991
EXPOSE 9999
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
WORKDIR /声明工作目录
COPY ./source-1.0.jar source-1.0.jar
ENTRYPOINT ["sh","-c","服务启动的命令"]
文件目录存放见截图
接下来进行jennkins配置,点击新建任务,输入名称后选择流水线并点击确定按钮。
配置git地址以及登录凭证,并指定代码分支
配置流水线写好的.groovy文件,点击应用保存
点击立即构建开始部署发布,可点击任务Console Outout查看执行的完整流程步骤,至此jenkins的配置安装部署成功。
优缺点对比
Jenkins 的优点:
- 功能测试与部署:Jenkins 可以自动完成代码的编译、打包和部署,减轻运维人员的工作负担。
- 持续集成:Jenkins 作为一个开源的持续集成引擎,支持自动化构建、测试和部署流程,提高开发效率和代码质量。
- 易于安装与配置:Jenkins 易于安装和配置,方便开发人员、运维人员和测试人员使用。
- 插件生态系统:Jenkins 拥有丰富的插件生态系统,可以集成各种工具和服务。
- 可扩展性与灵活性:Jenkins 的可扩展性和灵活性使其能够适应各种规模和复杂度的项目。
- 分布式构建:Jenkins 支持分布式构建,提高了构建效率。
- 强大的社区支持:作为开源项目,Jenkins 拥有活跃的社区和广泛的用户基础。
Jenkins 的缺点:
- 性能问题:Jenkins 反应可能较慢,特别是在资源消耗较大的情况下,页面跳转切换时可能会感到延迟和卡顿。
- 插件系统:虽然插件系统提供了扩展性,但过多的插件可能导致易用性降低,且插件配置可能复杂。
- Docker 集成体验:Jenkins 的 Docker 集成体验不够好,插件众多且配置复杂。
- 调试困难:Jenkins 的调试过程可能比较麻烦,没有本地或服务器上的命令行调试功能。
- 界面老旧:Jenkins 的界面可能显得老旧,尽管新的插件如 BlueOcean 提供了改进的界面。
这些优缺点可以帮助用户更好地理解 Jenkins 是否适合他们的持续集成和持续部署需求。