PHP 使用 ZipArchive 打包 zip
使用 ZipArchive 打包文件或文件夹,采用最后一层文件夹目录作为打包文件的根目录:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970<?phpnamespace App\Service;class ZipService{ public $zipObj; public function __construct() { $this->zipObj = new \ZipArchive(); } /** * zip 文件夹打包 * @param $filePath | 打包的文件路径 * @param $zipFileName | 生成的zip文件路径 * @return array|bool */ public function cr ...
Centos 下安装 Android SDK 供 Jenkins 打包使用
前言当我们使用 Jenkins 在 Centos 上打包 Android 的时候,需要在 Centos 上安装 Android SDK 才能打包。
1.下载sdk-tools-linux-4333796.zip
12345[root@CentOS-Master share]# wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip[root@CentOS-Master share]# unzip sdk-tools-linux-4333796.zip -d android-sdk[root@CentOS-Master share]# cd android-sdk[root@CentOS-Master android-sdk]# ls tools
2.配置android 环境变量
1[root@CentOS-Master android-sdk]# vim /etc/profile
输入然后保存
12export ANDROID_HOME="/usr/share/android-sd ...
Centos 安装 Jenkins
准备工作,首先要安装 Java 环境如果你的系统没有自带git,那么也需要安装一个
1yum install git
安装第一种方法1234sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keyyum install jenkins
第二种方法直接下载 rpm 安装各个版本地址 https://pkg.jenkins.io/
12wget https://pkg.jenkins.io/redhat/jenkins-2.156-1.1.noarch.rpmrpm -ivh jenkins-2.156-1.1.noarch.rpm
配置1234vim /etc/sysconfig/jenkins#监听端口JENKINS_PORT="8080"
配置权限为了不因为权限出现各种问题,这里直接使用root ...
Mac Jenkins 部署 SpringBoot 应用到远程服务器
前言本篇文章以本地 Mac 搭建的 Jenkins 为背景,实现本地通过 Jenkins 打包并传到远程服务器并重启 jar 包。
安装插件首先我们需要在插件管理中安装 Publish Over SSH 插件
安装好后在系统配置中找到 Publish Over SSH 配置项
这里开头的 Passphrase 是通用密码,表示以下添加的服务器,若没填密码,则都是用该密码。
接下来配置服务器连接信息
然后点击高级,可以单独设置该服务器的密码:
设置完之后,点击保存。
全局工具配置配置JDKCentos 的 JDK_HOME 如果不知道在哪里,可以通过 echo $JAVA_HOME 命令查看
配置 maven由于我之前没有在服务器上安装 maven,所以我这里选择自动安装
配置项目在配置项目的构建环境中选择 Send files or execute commands over SSH after the build runs
这个选项表示在构建部分执行完之后,在执行上传到远程服务器等操作
参数解释
Source files默认是 Jenkins workspace 的工作 ...
Mac Jenkins 构建时更改文件内容
前言本人使用的机器是 Mac M1,在开发 Android 项目时,有一个问题,是如果 Android 项目中有操作 SQLite 数据库的地方,则无论打包还是编译都会报一个错
经过网上搜寻找到了一个解决方案,就是在项目根目录的 build.gradle 中增加
123456789101112allprojects { // 如果本地有操作sqlite,会报错 //Execution failed for task ':app:kaptDebugKotlin'. //> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction // > java.lang.reflect.InvocationTargetException (no error message) // https://issuetracker.google.com/i ...
Mac 安装 Jenkins
进入官网Jenkins 官网下载地址
进入到 MacOs 系统的下载界面
MacOs 有两种安装方式,一种是使用 brew 安装,另一种是下载 .pkg 的安装包进行安装,就是下面的 installers for previous Jenkins versions
这里我使用 brew 安装,LTS 是长期维护版本,这里我安装了最新版本
1brew install jenkins
安装成功后,使用命令启动和停止 jenkins 服务
12brew services start jenkinsbrew services stop jenkins
jenkins 默认的端口号是 8080, 打开浏览器访问 8080接下来就是常规的用户配置,配置登录用户,安装推荐插件
其他安装方式文章使用 jenkins war 包安装MacOS安装Jenkins并初始化全纪录
Mac Jenkins 构建 Android App 时动态设置代码参数
前言在日常构建打包的过程中,每次打包都需要修改 versionName,versionCode,还有 appName 和 appIcon 等代码参数,这些参数如何通过 Jenkins 的参数化构建来完成,实现构建时直接传入这些参数来时间自动化打包。
那么就需要将这些代码参数能够统一管理,我们平时的 appName appIcon 这些参数都是放在 AndroidManifest.xml 文件里,像这种参数都需要抽出来统一管理。
参数统一管理这里我选择将需要动态化的参数统一放到项目根目录的 gradle.properties 文件中去,我的配置如下
123456# 忽略其他配置...APP_NAME=我的AppAPP_ICON=@mipmap/ic_launcherVERSION_CODE=108VERSION_NAME=1.0.8
这里我将以上这四个参数进行了参数化,我这里的 APP_ICON 参数是一个 adaptive-icon 的 xml 文件,他也可以是你的图片资源文件。像这样:
1APP_ICON=@drawable/icon_logo
那么接下来就是将以上的参数配置放 ...
Mac 环境下 Android 使用 Jenkins 构建自动化打包
安装 Jenkins这里不在赘述,官网上使用 brew 安装
配置Jenkins 安装成功后,就可以开始配置了
配置 JDK
配置 Git
配置 gradle
全局属性配置
配置 ANDROID_SDK 的路径增加 android_home 的环境变量
自动化打包接下来新建一个任务,选择自由风格
配置git地址
如果你使用的是 https,那么需要配置认证,我这里使用的是 ssh,所以不需要配置认证,认证的方式需要添加凭据
配置参数化构建过程可以在构建时,通过传入参数来灵活打包
构建打包脚本
这里有这些选项,可以使用 Invoke Gradle script, 我这里使用的是执行 shell
我们的项目打包是使用项目目录下的 gradlew 执行脚本,所以我直接使用 shell 来构建打包
这里我执行了两个 shell需要解释一下的是 echo xxx | sudo -S 这一段由于我的电脑在本地打包时,执行 gradlew 必须使用 sudo 输入我的电脑密码,所以当执行脚本时,我通过加上 -S 参数来从 echo xxx 这里获取到密码,达到自动输入密码。参考:使用带 ...
如何查看 SpringBoot 是否依赖了 logf42
前言
想必这个事情已经都知道了。
解决此问题就需要将 logf4j 版本升级到 2.15+,或者如果项目中使用的是 slf4j 接口则可以很方便的改成 logback,slf4j 是日志系统的统计接口规范,SpringBoot 自带的日志工具就是 logback,将 logf4j 的引用从 pom.xml 中去除就好。
所以如果 pom.xml 文件中找不到 logf4j 的任何引用,那么就应该是没有问题的。
也可以通过 idea 的 debug 工具来查看 log 使用的是 logback 还是 logf4j
只需要在对应获取 log 实例的行打断点
然后通过 debug 运行项目
接着 postman 请求接口,idea 查看断点
我这里是用的是 logback
结束。
参考文章https://www.cnblogs.com/flower-dance/p/14331077.htmlhttps://www.jb51.net/article/198624.htm
详细说明此事件链接https://www.bilibili.com/read/cv14375534?spm_id_fr ...
Mac MySQL5.7 默认打开 ONLY_FULL_GROUP_BY 模式问题与解决方案
背景MySQL5.7 后将 sql_mode 的 ONLY_FULL_GROUP_BY 模式默认设置为打开状态,这样一来,很多之前的 sql 语句可能会出现错误,错误信息如下:
1Error Code: 1055. Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column '×××' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
描述:select 的列都要在 group 中。
解决方案一这时我们可以通过 Navicat 或进入 MySQL 命令行终端输入 select @@global.sql_mode 来查看当前数据库的 sql_mode 属性值
复制查询结果,去掉 ONLY_FULL_GROUP_BY,重新赋值,执行成功后,就可以将ONLY_FUL ...