221122-Maven私服配置Downloading from maven-default-http-blocker问题解决方法

最近配置maven的私服地址,发现私服里的包无法下载,一直报Downloading from maven-default-http-blocker: http://0.0.0.0/com的异常

从异常描述看,主要问题就是这个域名解析为了http://0.0.0.0

主要的原因在于在maven的 3.8.1 版本开始,maven禁止从http协议的仓库地址下载依赖

官方描述可以参考: https://maven.apache.org/docs/3.8.1/release-notes.html#cve-2021-26291

官方给出的解决方案

1
2
3
4
5
6
7
8
9
10
11
How to fix when I get a HTTP repository blocked?
If the repository is defined in your pom.xml, please fix it in your source code.

If the repository is defined in one of your dependencies POM, you'll get a message like:

[ERROR] Failed to execute goal on project test: Could not resolve dependencies for project xxx: Failed to collect dependencies at my.test:dependency:version -> my.test.transitive:transitive:version: Failed to read artifact descriptor for my.test.transitive:transitive:jar:version: Could not transfer artifact my.test.transitive:transitive:pom:version from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [blocked-repository-id (http://blocked.repository.org, default, releases+snapshots)]
Options to fix are:

upgrade the dependency version to a newer version that replaced the obsolete HTTP repository URL with a HTTPS one,

keep the dependency version but define a mirror in your settings.

我们下面给出的解决方案自然就有俩个

  • 配置https的私服地址
  • 降级maven版本,找一个3.8.1之前的版本

220608-Nginx重定向的两种配置方式

一段时间没有配置过nginx,果不其然之前学到的又还回去了,下面给出基于rewrite/alias的两种重定向配置方式

需求设置 /ximg 路径下的请求,访问 /home/yihui/html 下的html文件,应该怎么配置?

220602-Ubuntu终端实现Maven中央仓库包上传

最近换了个win10的笔记本,发布jar到中央仓库就得重新配置下了,特此记录一下,在win10的ubuntu终端界面下,如果我们希望实现发布jar包到中央仓库,需要的完整环境安装配置教程

220226-解决Centos下载时异常 Failed to download metadata for repo AppStream

阿里云ecs服务器,通过yum install安装命令时,突然发现报错,提示信息如下

1
2
3
4
5
Repository extras is listed more than once in the configuration
CentOS Linux 8 - AppStream 18 kB/s | 2.3 kB 00:00
Errors during downloading metadata for repository 'appstream':
- Status code: 404 for http://mirrors.cloud.aliyuncs.com/centos/8/AppStream/x86_64/os/repodata/repomd.xml (IP: 100.100.2.148)
Error: Failed to download metadata for repo 'appstream': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

搜索一番之后发现原因貌似是

2022年1月1日起CentOS官方将不再对CentOS 8提供服务支持,虽然系统可以正常使用,但CentOS 8的yum源已经移除无法使用了,使用yum安装会报错:Repository extras is listed more than once in the configuration CentOS Linux 8 - AppStream Errors during downloading metadata for repository 'appstream': - Status code: 404 for

220225-巧用NC实现文件传输

之前在服务器上拷贝文件时,要么使用scp, 要么就是上传到ftp服务器,然后再需要使用的服务器上重新下载,虽然这两种方式也没啥毛病,但是缺陷也比较明显

  • scp: 要求授权验证
  • ftp: 需要一个第三方的存储系统,用完之后如果不删除的话这个文件就一直在那

接下来介绍下使用ncat(即nc)来实现文件拷贝

220127-MAC系统解决DST根证书过期问题

let’s encrypt的根证书过期这事有关注的小伙伴应该都知道,这里记录一下最近遇到的坑

211009-git ammend知识点

在实际使用git的过程中,难免会存在手误的场景,比如 git commit之后,发现提交的描述信息不太合适,想调整一下;或者发现本地有多个零碎未提交的commit,想合并成一个提交…

当我们出现这些需求场景的时候,可以考虑使用git commit --amend来实现

210702-curl 耗时统计脚本小记

记录一下curl访问url请求的耗时情况

1
curl 'https://blog.hhui.top/hexblog/about/' -w '%{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%'

参数说明:

  • time_namelookup:DNS 解析域名耗时
  • time_connect:client和server端建立TCP 连接的时间
  • time_starttransfer:从client发出请求;到web的server 响应第一个字节的时间
  • time_total:client发出请求;到web的server发送会所有的相应数据的时间

建立TCP连接到server返回client第一个字节的时间:time_starttransfer – time_connect = s

server把响应数据发送给client的时间:time_total – time_starttransfer = s

210224-ssh防掉线设置

通过ssh连接远程服务器,一段时间不操作之后自动断线,一个可选的设置方法,在服务端添加心跳设置

1
2
3
4
5
sudo vim /etc/ssh/sshd_config

# 配置
ClientAliveInterval 30
ClientAliveCountMax 6

200223-docker 批量删除命令小记

删除所有容器

1
docker rm `docker ps -a -q`

删除所有镜像

1
docker rmi `docker images -q`

删除没有tag镜像

1
docker rmi `docker images|grep none|awk '{print $3 }'|xargs`

210208-git diff ^M不同操作系统下换行区别

不同操作系统下的换行不一致,当一个项目的开发者分别再linux/mac/win下做了代码提交改动之后,使用git diff命令时,可能会发现,即便啥也没改,当时有很多变动,显示^M的差别

主要原因就是换行的问题

解决这个问题的一个办法就是统一换行

1
git config --global core.autocrlf true

210203-tmux 批量操作

借助tmux,可以非常方便的实现同时操作多个面板

1
2
3
4
5
6
7
8
9
10
11
12
# 启用
tmux

# 开面板,上下、左右
ctrl + b: %
ctrl + b: "

# 开启批量操作
ctrl + b -> :set synchronize-panes on

# 关闭面板
ctrl + b: x

210125-tmux 快捷键

tmux 终端复用器,最简单质朴的需求就是多窗格,会话复用,本文简单记录一下常用的快捷键

210105-Permissions for .ssh/id_rsa are too open

ssh私钥权限问题,导致登录服务器时,提示异常

1
2
3
4
5
6
7
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0750 for '/Users/user/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/user/.ssh/id_rsa": bad permissions

解决这个问题的一个手段是将它的权限设置为700

1
chmod -R 700 .ssh/

201128-Maven 中央仓库提交Jar包全程指南

本文记录一下将jar上传到maven中央仓库的全过程,文中项目依托在github上,使用的是mac环境 (关于maven、jdk的环境配置不属于本文内容)

201112-Shell 文件迭代遍历

文件迭代遍历,如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function read_file() {
for file in `ls -a $1`
do
if [ -d $1"/"$file ];then
if [[ $file != '.' && $file != '..' ]];then
read_file $1"/"$file
fi
else
echo $1"/"$file
up_file_name=$1"/"$file
echo $up_file_name
fi
done
}

200810-acme.sh 快速实现https证书颁发与自动续期

借助acem.sh来迅速实现let’s encrypt的泛域名ssl证书颁发与续期,基本上五分钟就可以解决战斗

本文主要内容来自acme.sh的官方wiki,一切以官方说明为准: acme wiki

200728-Centos hostname修改

centos 6 修改方式

1
2
3
4
# 修改hostname,立即生效
hostname new-hostname
# 查看hostanme
hostname

centos 7 修改方式

1
2
3
4
# 修改hostname,立即生效
hostnamectl set-hostname new-hostname
# 查看hostname
hostname

200709-CURL文件上传

使用curl进行文件上传,语法如下

1
curl -f '文件名=@文件地址' url

200703-grep 匹配到二进制文件

直接使用grep 发现一个奇怪的问题,居然提示

1
2
$ grep 'error' cic.log
匹配到二进制文件 cic.log

grep如果碰到\000 NUL字符,就会认为文件是二进制文件。必须加上-a或–text选项强制让grep认为是文本文件才可以看到正常的结果

因此解决方案是:

1
2
3
$ grep 'error' cic.log --text
# 或者如下
$ grep 'error' cic.log --a

200619-http代理服务器tinyproxy搭建手册

简单记录一下http代理服务器tinyproxy的搭建与简单配置过程

1
2
# 安装
sudo yum install tinyproxy -y

200616-zsh 安装与配置

本文简单记录centos环境下,zsh的安装过程,以及我个人常用的主题配置

200604 Nginx重写代理链接

本文参考自: 重写代理链接-url-rewrite

使用nginx做发现代理,遇到一个场景,匹配 /console/ 开头的域名,转发到目标端口号,但是希望转发过去的url,去掉 /console/ 这个头

针对这个,可以借助 rewrite + proxy_pass来实现

1
2
3
4
location /console {
rewrite ^/console/(.*) /$1 break;
proxy_pass http://127.0.0.1:8080/;
}

200515-nginx 提示文件访问权限问题failed(13:Permission denied)

nginx配置完毕之后,添加一个html页面,访问直接500错误,通过查看错误日志,显示 failed (13: Permission denied)

解决方法,修改配置文件中的userroot

1
2
3
4
vim /etc/nginx/nginx.conf

user root;
worker_processes auto;

修改完之后,重启即可

1
nginx -s reload

200426-mac 刷新dns

mac 快速刷新dns缓存命令

1
sudo killall -HUP mDNSResponder

200421-Curl 代理访问方式小结

记录一下curl通过代理访问目标网站的几种姿势

原文请参考: How to use curl command with proxy username/password on Linux/ Unix

语法:

1
2
3
4
curl -x '协议://[用户名:密码@]ip[:端口号]' url

curl -x http://[user:password@]proxyhost[:port]/ url
curl -x socks5://[user:password@]proxyhost[:port]/ url

200420-Let’s Encrypt 通配符配置,为你的根域名添加https证书

现在站点不挂个https,就连微信分享都开不了,然而商用https证书又特别贵,作为草根想搞个https证书,有下面两种方案:

  • 可以到阿里云的控制台上申请免费证书(必须备案,一年有效期,一个域名一个证书)
  • 另外一个方案就是利用let’s encrypt来申请证书(支持通配符,即多个域名一个证书)

下面手把手教你利用let’s encrypt进行证书申请

200413-Centos hosts修改及生效

centos域名绑定与生效

1
2
3
4
5
# 修改域名
vim /etc/hosts

# 生效
/etc/init.d/network restart

191206-Docker 常用命令速查手册

记录一下docker的日常使用命令,本文主要针对linux + mac操作系统而言,window是否适用不太确定,谨慎使用

191206-Centos安装docker与使用说明

本文主要介绍Centos下如何安装docker,并给出一些基本的使用case

191122-nginx 开启gzip压缩配置

ngxin 开启gzip压缩,减少数据包大小,默认场景下nginx没有开启gzip压缩,需要主动指定

关键配置修改如下(进入配置文件 nginx.conf)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
http {
# ...

# 开启gzip压缩
gzip on;
# 表示当请求的资源超过1k时,才开启压缩
gzip_min_length 1k;
# 设置压缩所需要的缓冲区大小
gzip_buffers 4 16k;
# 针对的http版本
gzip_http_version 1.0;
# 压缩级别,级别越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大
gzip_comp_level 2;
# 支持压缩的资源类型,对于前后盾分离的项目而言,注意下json的压缩支持
gzip_types text/plain application/x-javascript text/css application/xml application/json text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary off;
# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";

}

修改完毕之后重启nginx即可

1
nginx -s reload

190925-Redis集群搭建手册

之前在使用redis的case中,更多的只是单机的使用;随着业务的增长,为了更好的性能提供,集群是一个必然的发展趋势;下面记录一下搭建集群的步骤

单机安装手册,可以查看: 单机redis安装手册

190809-Centos用户无法切换问题记录

使用influxdb时,需要执行一个命令时,要求切换到influxdb的用户下,发现通过 su influxdb 居然切不过去,特此记录一下

190703-docker非root用户可使用配置

docker要求使用root权限进行启动,但是启动之后,普通的账号会发现没有访问docker的权限,然而每次都使用root进行访问过于麻烦,那么有办法让普通账号也能正常访问么?

190621-Gitalk配置与排坑全程实战

基于gittalk搭建个人站点的评论的完整记录,特别是遇到的一些鬼畜的问题,如Error not found, 404问题,Validation Failed(422)校验失败问题等,为大家避免采坑提供一些参考

190212-linux线程数、进程查询

ssh登录远程服务,忽然提示su: failed to execute /bin/bash: 资源暂时不可用,然后通过root账号登录服务器没有问题,但是使用su切换用户时,依然失败,提示上面的错误,搜索一下可能原因是线程数沾满,杀掉一些占用大量线程的进程即可;然后记录下linux下线程数的相关操作

190127-Git项目代码行数统计

统计项目某个某个时间段的行数

1
git log --author="$(git config --get user.name)"  --before='2018-12-31 23:59:59' --after='2018-01-01 00:00:00' --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }'

190124-查看进程tcp连接情况

如何查看一个进程的tcp连接情况?

1
lsof -p 进程号 -nP | grep TCP

190121-服务器常用shell命令小结

记录一下服务器开发平时常用的shell命令,帮助高效发现和解决问题

190115-Shell目录下文件统计

文件夹下文件的统计,通常用的是wc来做,下面简单小结一下各种case

181222-Centos SSH免密登录配置不生效问题fix

centos添加ssh免密配置,结果发现登录时,依然要求设置密码,记录一下解决过程与最终的方案

181220-Shell-目录遍历获取指定的文件

遍历目录,获取需要的文件

直接贴对应的实现脚本

1
2
3
4
5
6
cd /home
for dir in $(ls)
do
# 如果是目录,则打印目录名
[[ -d ${dir} ]] && echo ${dir}
done

181219-centos配置开机后启动脚本

配置开机后执行脚本

配置相对简单,添加一个执行命令即可

1
2
3
4
vim /etc/rc.d/rc.local

# 在文件最后添加
sh /home/yihui/xxx.sh

执行脚本,添加上可执行的权限即可

181207-Centos使用docker构建ecs环境

本文主要介绍利用docker来构建一个java后端可用的开发运维环境

180925-shell获取系统当前时间并格式化

shell命令获取当前系统时间并格式化的方式记录

1
2
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "${time}"
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×