<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aouoy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/aouoy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aouoy]]></copyright><item><title><![CDATA[maven集成cucumber，mvn test单元测试不运行]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/120067181</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/120067181</guid><author>aouoy</author><pubDate>Thu, 02 Sep 2021 18:11:40 +0800</pubDate><description><![CDATA[maven集成cucumber，mvn test单元测试不运行
项目已集成cucumber，jacoco测试覆盖率100%，在application项目添加单元测试，覆盖率下降，发现单元测试覆盖的语句覆盖率没有统计到。经试验，发现是application项目下的单元测试没有运行，但domain项目的单元测试是正常运行的。
经过排除，是application项目的pom.xml文件的maven-surefire-plugin插件配置问题，原配置如下：
&lt;plugin&gt;
				&lt;artifa]]></description><category></category></item><item><title><![CDATA[docker-compose部署织梦CMS]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/119805326</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/119805326</guid><author>aouoy</author><pubDate>Thu, 19 Aug 2021 16:33:18 +0800</pubDate><description><![CDATA[docker-compose部署织梦CMS
使用docker-compose部署，可以做到一键启动，使用方便。本次部署织梦CMS使用nginx、mysql5.7、PHP5.4，其他版本可能存在兼容的问题，部署两个CMS项目，后面还能增加项目部署。PHP使用devilbox/php-fpm:5.4-prod，已经安装了平常使用的依赖，不需要再安装什么。
需要特别注意的是CMS项目的权限问题，必须开777才能正常使用
目录结构为:
.
├── conf
│   ├── nginx
│   │   ├── bon]]></description><category></category></item><item><title><![CDATA[使用acme.sh给Nginx配置HTTPS证书]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/115748036</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/115748036</guid><author>aouoy</author><pubDate>Tue, 20 Apr 2021 07:19:21 +0800</pubDate><description><![CDATA[使用acme.sh给Nginx配置HTTPS证书
1. 安装 acme.sh
这里注意做hosts映射，不然安装不成功。
按提示映射访问不了的域名就可以了，一般设置为
vim /etc/hosts

在最后添加如下内容,IP可能需要更换
185.199.108.133 https://raw.githubusercontent.com
192.30.255.112 https://github.com

执行安装命令
curl  https://get.acme.sh | sh

设置为自动更新
acme.]]></description><category></category></item><item><title><![CDATA[springcloud gateway转发websocket时报类型转换异常]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/111463896</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/111463896</guid><author>aouoy</author><pubDate>Sun, 20 Dec 2020 22:12:45 +0800</pubDate><description><![CDATA[使用spring-boot-starter-websocket搭建了websocket服务，直接用服务的IP加端口访问是正常的，换成网关的访问地址就报错。
查看日志，
2020-12-17 18:26:43,675 ERROR AbstractErrorWebExceptionHandler:117 -[d5c6b807] 500 Server Error for HTTP GET "/websocket/pk/ssss/1"
java.lang.ClassCastException: com.spinni]]></description><category></category></item><item><title><![CDATA[swagger2文档渲染问题记录]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/111463855</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/111463855</guid><author>aouoy</author><pubDate>Sun, 20 Dec 2020 22:11:23 +0800</pubDate><description><![CDATA[使用swagger2的@ApiModel时，使用了相同的名称，比如
@ApiModel("用户反馈")
@Data
public class FeedbackAddParam {
    @ApiModelProperty("添加时的字段a")
    private Boolean a;
}

@ApiModel("用户反馈")
@Data
public class FeedbackUpdateParam {
    @ApiModelProperty("id")
    private Integer ]]></description><category></category></item><item><title><![CDATA[docker安装gitlab后的配置修改]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/109798929</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/109798929</guid><author>aouoy</author><pubDate>Thu, 19 Nov 2020 21:49:32 +0800</pubDate><description><![CDATA[docker安装gitlab后的配置修改
docker安装gitlab:
docker run -d -p 443:443 -p 9001:80 -p 8022:22 \
--name gitlab \
--restart always \
--privileged=true \
-v /data/gitlab/config:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
]]></description><category></category></item><item><title><![CDATA[Intellij IDEA打开出现Cannot load settings from file错误]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/109216032</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/109216032</guid><author>aouoy</author><pubDate>Thu, 22 Oct 2020 10:09:20 +0800</pubDate><description><![CDATA[上次手贱新建项目的时候没有看清楚存放路径就确定，删除那个项目之后每次打开idea都会在右下角提示没有加载模块成功
Cannot load settings from file 'E:\xxx\xxx\xxx.iml': File E:\xxx\xxx\xxx.iml does not exist Please correct the file content

只需要按快捷键Ctrl + Alt + Shift + s打开项目结构，在对应的模块上右键删除即可


...]]></description><category></category></item><item><title><![CDATA[蓝鲸智云安装踩坑笔记]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/109208551</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/109208551</guid><author>aouoy</author><pubDate>Wed, 21 Oct 2020 20:31:23 +0800</pubDate><description><![CDATA[一、部署方式
单机部署官方文档提供了两种方式，一是按单机部署文档操作，二是按标志部署文档操作，关键是修改install.config文档。本人按标志部署文档操作单机部署。
10.xx.xx.111 nginx,rabbitmq,kafka(config),zk(config),es,appt,fta,consul,mysql,beanstalk,mongodb,appo,paas,cmdb,job,gse,license,redis,influxdb,bkdata(databus),bkdata(dataa]]></description><category></category></item><item><title><![CDATA[安装蓝鲸智云执行./bk_install bkdata时报cannot find -lmysqlclient解决]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/109067501</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/109067501</guid><author>aouoy</author><pubDate>Wed, 14 Oct 2020 11:09:16 +0800</pubDate><description><![CDATA[异常如下：
    gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/opt/py27/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_m]]></description><category></category></item><item><title><![CDATA[Mybatis Plus QueryWrapper结合lambda表达式使用distinct的方法]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/108686746</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/108686746</guid><author>aouoy</author><pubDate>Sat, 19 Sep 2020 23:01:48 +0800</pubDate><description><![CDATA[Mybatis Plus QueryWrapper的lambda用起来感觉挺爽的，有点JPA的感觉，也不需要拼很多字符串，可以利用IDE的代码检查功能，总之好处多多，停不下来。最近遇到一个问题，需要对SQL查询的结果做去重处理，自然想到了使用 distinct。
对于复杂的SQL语句，一般使用自定义XML的方式，但是这么个小问题，XML能不写就尽量不写了。查看了一下api，也没有找到针对distinct的lambda用法，只有select(String… sqlSelect)的方法可以设置查询字段，看样子只]]></description><category></category></item><item><title><![CDATA[Apache Kylin构建cube优化]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/108120830</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/108120830</guid><author>aouoy</author><pubDate>Sun, 23 Aug 2020 21:38:44 +0800</pubDate><description><![CDATA[Apache Kylin是一个开源的分布式分析引擎，是大数据集大成者。所谓集大成者，就是把大数据里面的基础组件都用了个遍，Hive、MapReduce、HBase，HDFS，YARN，Zookeeper这些。大数据计算都比较耗时，Kylin采用预计算的方式来换取更快的速度，是典型的以空间换时间思想，使用资源越多，查询延迟越低。
cube构建时默认会按照设置的维度组合构建出全部的聚合结果，一共有2^n个结果，结果集太大并且不是所有维度的组合结果都会用到，因此结合业务场景权衡时间和空间，通过设置相关的构建条件，]]></description><category></category></item><item><title><![CDATA[ClickHouse数据引擎总结]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/107969145</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/107969145</guid><author>aouoy</author><pubDate>Wed, 12 Aug 2020 23:59:08 +0800</pubDate><description><![CDATA[ClickHouse提供了大量的数据引擎，分为数据库引擎、表引擎，根据数据特点及使用场景选择合适的引擎至关重要，这里根据资料做一些总结。

数据库引擎默认是Ordinary，在这种数据库下面的表可以是任意类型引擎。
生产环境中常用的表引擎是MergeTree系列，也是官方主推的引擎。MergeTree是基础引擎，有主键索引、数据分区、数据副本、数据采样、删除和修改等功能，ReplacingMergeTree有了去重功能，SummingMergeTree有了汇总求和功能，AggregatingMergeTre]]></description><category></category></item><item><title><![CDATA[旧手机做监控器]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/107884317</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/107884317</guid><author>aouoy</author><pubDate>Sat, 08 Aug 2020 19:44:42 +0800</pubDate><description><![CDATA[前阵子看到在吃灰的旧手机，在想要是有人过来换脸盆肯定拿去换了，放着也是碍事。但是等了好久都没听到那个魔性的声音，“旧手机、废手机、换不锈钢脸盆”，没办法，想办法看看能不能在利用一下，好歹也是跟了我几年的手机了，再发挥一下价值。
突然有一个想法，在手机里面安装一个APP，用来做监控也是挺好的，于是整理了一下需要的功能，如图。
在市场上找了一下，也有些类似功能的APP，看评论是需要开会员才能用的，那就自己写一个呗，自己写的也比较放心些，干起来。
1.安装Android studio
官网下载，如何按这个提示设置]]></description><category></category></item><item><title><![CDATA[pdf转word处理工具，免费不限制]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/107779879</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/107779879</guid><author>aouoy</author><pubDate>Tue, 04 Aug 2020 10:36:22 +0800</pubDate><description><![CDATA[最近想将一个PDF文档转换成word文档，在尝试了WPS、福昕、及各种在线转换的方式之后，我决定去找找有没有人弄好的开源项目（主要是没钱开VIP）。
包装spire
说干就干，不过没有找到现成的，倒是有一个仓库提供了转换的代码。那从GitHub fork出来，改成命令行使用的方式打成jar包就行了。
修改了一下代码，经过编译打包，搞成自己想要的方式，使用方法
java -jar PdfTool.jar test.pdf

转换完成会在同级目录下生成一个相同名称的.docx格式的文件。

对设置了保护的PDF]]></description><category></category></item><item><title><![CDATA[JVM运行时内存划分与JVM内存模型]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/107060052</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/107060052</guid><author>aouoy</author><pubDate>Wed, 01 Jul 2020 15:01:29 +0800</pubDate><description><![CDATA[JVM运行时内存数据区的划分和JVM内存模型其实没有什么直接的联系，是两种不同层次的划分，但是常常就容易把它们的概念搞混了。这里记录一下。
JVM运行时数据区
运行时数据区是JVM在执行代码的过程中为了方便管理划分的区域，各种内存溢出、垃圾回收，就是基于这个概念的。

JVM内存模型
内存模型定义了各种变量的访问规则，规定了怎么读变量和怎么写变量的细节，线程安全、各种锁，就是基于这个概念的。


[图片来源]: 深入理解Java虚拟机：JVM高级特性与最佳实践（第3版）

...]]></description><category></category></item><item><title><![CDATA[程序员书籍，持续更新]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/107011935</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/107011935</guid><author>aouoy</author><pubDate>Mon, 29 Jun 2020 07:46:15 +0800</pubDate><description><![CDATA[程序员书籍如何阅读一本书软技能 : 代码之外的生存指南软技能2软件开发者职业生涯指南囚徒健身10x程序员工作法实现模式测试驱动开发重构（第2版）解析极限编程用户故事与敏捷方法代码整洁之道持续交付 : 发布可靠软件的系统方法持续交付2.0 : 业务引领的DevOps精要实现领域驱动设计
生活中总会遇到一些书让你有相见恨晚的感觉，这里记录一些我读过和想读的书。
如何阅读一本书
图书链接
软技能 : 代码之外的生存指南
图书链接
软技能2软件开发者职业生涯指南
图书链接
囚徒健身
图书链接
10x程序员工作法
网]]></description><category></category></item><item><title><![CDATA[实用技巧收录]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/106917978</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/106917978</guid><author>aouoy</author><pubDate>Tue, 23 Jun 2020 11:35:28 +0800</pubDate><description><![CDATA[目录实用技巧收录window快捷创建txt文本
实用技巧收录
这里收录一些实用的技巧，持续更新
window快捷创建txt文本
在window系统创建文件夹可以使用快捷键Ctrl + Shift + N，
那创建txt文件的时候，我们也可以创建一个快捷键来使用，比如，鼠标右键 + w + t。
方法：修改注册表，添加右键菜单的快捷选择，不需要重启电脑就能生效。如下：
command + r ,输入regedit打开注册表

Ctrl + F ,输入AAF68885查找

选中AAF68885，Ctrl + ]]></description><category></category></item><item><title><![CDATA[Maven项目使用Checkstyle检查代码]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/106916263</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/106916263</guid><author>aouoy</author><pubDate>Tue, 23 Jun 2020 09:49:34 +0800</pubDate><description><![CDATA[目录Maven项目使用Checkstyle检查代码idea中配置checkstyle-IDEA插件在Maven项目中配置使用Checkstyle单模块的maven项目多模块的maven项目Jenkins中配置异常参考
Maven项目使用Checkstyle检查代码
Checkstyle可以做到自定义风格的代码检查，这里提供一些使用的例子供参考。
idea中配置checkstyle-IDEA插件
使用checkstyle-IDEA插件，可以直接依靠idea检查代码，优点是有图形界面，操作直观，安装好之后所有项]]></description><category></category></item><item><title><![CDATA[idea个人常用设置]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/106904246</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/106904246</guid><author>aouoy</author><pubDate>Mon, 22 Jun 2020 16:31:31 +0800</pubDate><description><![CDATA[按照个人习惯，安装完idea之后，定制一些设置，符合自己的操作习惯。
一、Live Template

路径：File-&gt;Setting-&gt;Editor-&gt;Live Template

使用Live Template添加模板注释，自动生成相应的注解。
junit测试方法模板:
Abbreviation：test
Description：junit测试方法
Template text ：
@Test
public void test() {

}

使用方法：输入test后按tab键

文档]]></description><category></category></item><item><title><![CDATA[spring和junit5环境下的测试]]></title><link>https://blog.youkuaiyun.com/aouoy/article/details/106766427</link><guid>https://blog.youkuaiyun.com/aouoy/article/details/106766427</guid><author>aouoy</author><pubDate>Mon, 15 Jun 2020 17:02:57 +0800</pubDate><description><![CDATA[spring和junit5环境下的测试
  不是用junit写的测试都叫做单元测试。单元测试必须简单，没有依赖外部数据源。有依赖到数据库之类的，可以按大、中、小的角度划分，叫大测试、中测试、小测试，这样不会那么别扭。这里展示一些springboot环境下使用junit5进行各层测试的例子，仅供参考。
  完整代码示例：https://github.com/classyex/junitdemo
单元测试
class Demo {
    @Test
    public void should_get_mes]]></description><category></category></item></channel></rss>