jenkins发布时候替换项目文件

jenkins发布时候替换项目文件

在项目开发过程中,通常会有各种运行环境,比如开发环境、测试环境以及生产环境等。这些环境的一些配置一般都是不一样的,如数据库配置、Redis地址,一些属性配置等。如果我们在发布到不同环境时候都是手动修改配置,难免容易出错,而且这种方式不值得提倡。然后其实像maven也有提供profile功能来灵活切换配置文件,但是这种方式有个不好的地方是需要在项目在存放不同环境的配置,一般来说生产环境的配置信息不对普通开发开放的。

在这样的情况下,结合之前公司的工作经验,自己整理出一个更好的方案。这个方案可以实现以下几点功能:

  • 项目部署到不同环境中,能自动切换配置文件
  • 重要配置文件可以不对普通开发开放

实现原理:在代码仓库中创建一个额外的仓库来存放不同环境的配置文件,在拉取项目代码后,去仓库拉取配置文件项目,根据不同的环境选择不同目录下的配置文件,替换要发布的项目中的配置文件。然后就是正常的使用maven进行编译,部署等。

1、创建配置文件代码仓库

在gitlab中创建一个新项目,用于存放配置文件,目录如下:

  • dev
    • db.properties
    • redis.properties
  • test
    • db.properties
    • redis.properties
  • prd
    • db.properties
    • redis.properties

这里只是大概给个例子,实际按自己项目的需要放置。

2、配置jenkins脚本

jenkins的流程是:git clone代码下来之后,执行以下脚本

#生成临时文件夹
tempdir=profiles$RANDOM

#替换资源文件
git clone git@xxx.git ./$tempdir

#替换资源文件
cp -rf ./$tempdir/prd/* ./src/main/resources

#删除配置文件
rm -rf ./$tempdir

#maven编译,这里的maven命令需要注意自己的maven地址
/usr/share/maven/bin/mvn clean package -Dmaven.test.skip=true

#在这里之后可以使用就打好包了,可以使用jenkins Deploy war/ear to a container 插件部署war到tomcat
#或者是docker相关命令 自己补充
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的 pipeline 文件示例,用于发布上线 PHP 项目: ``` pipeline { agent any environment { REMOTE_HOST = "your-remote-host" REMOTE_USER = "your-remote-user" REMOTE_DIR = "/path/to/remote/dir" LOCAL_DIR = "/path/to/local/dir" } stages { stage('Checkout') { steps { checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'your-git-repo-url']]]) } } stage('Install Dependencies') { steps { sh 'composer install' } } stage('Build') { steps { sh 'zip -r your-project-name.zip *' } } stage('Deploy') { steps { sshPublisher(publishers: [sshPublisherDesc(configName: 'your-ssh-server', transfers: [sshTransfer(execCommand: "unzip -o your-project-name.zip -d ${REMOTE_DIR} && rm your-project-name.zip", execTimeout: 120000, flatten: false, remoteDirectory: REMOTE_DIR, remoteDirectorySDF: false)])]) } } } } ``` 该 pipeline 文件含以下步骤: 1. `Checkout` 阶段:从 Git 仓库中拉取代码。 2. `Install Dependencies` 阶段:安装 PHP 项目的依赖。 3. `Build` 阶段:将 PHP 项目成一个压缩文件,以便在部署时使用。 4. `Deploy` 阶段:将打好的 PHP 项目上传到远程服务器,并解压缩到指定目录中。 其中,需要根据实际情况配置以下环境变量: - `REMOTE_HOST`:远程服务器的 IP 或域名。 - `REMOTE_USER`:远程服务器的用户名。 - `REMOTE_DIR`:远程服务器上部署 PHP 项目的目录。 - `LOCAL_DIR`:本地 PHP 项目的根目录。 在使用该 pipeline 文件前,需要先在 Jenkins 中配置好 Git 仓库、SSH 连接和远程服务器信息。同时,需要在远程服务器上安装好 PHP 运行环境和相关依赖库,以确保 PHP 项目能够正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值