使用阿里云Maven镜像的正确姿势

2020-02-19 更新 阿里的镜像服务进行了改版,原先的 http://maven.aliyun.com/nexus/content/repositories/central 已经被变更为 https://maven.aliyun.com/repository/central 同时我发现阿里的这个仓库还缺失了索引的配置文件,所以没办法索引成功,但根据阿里的说法是可以构建成功的 $ wget https://maven.aliyun.com/repositories/central/.index/nexus-maven-repository-index.properties --2020-02-19 16:57:55-- https://maven.aliyun.com/repositories/central/.index/nexus-maven-repository-index.properties 正在解析主机 maven.aliyun.com (maven.aliyun.com)... 59.110.251.10, 59.110.251.11, 182.92.29.53, ... 正在连接 maven.aliyun.com (maven.aliyun.com)|59.110.251.10|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 404 Not Found 2020-02-19 16:57:55 错误 404:Not Found。 那么需要修改 ~/.m2/settings.xml 文件中的 mirror 节点下阿里云镜像对应的节点 一、引子 写Java的难免要接触Maven,又或者Gradle(反正都用着Maven的库)。BUT!http://repo1.maven.org/maven2访问起来慢到吃翔,每同步一次索引(大约440MB+)简直就是一个噩梦,曾经为了做Minecraft的Mod,光构建环境花掉了我整整7个小时,当时人年轻,就那么傻等着。 再后来,我知道了可以用镜像站点,最开始用的是开源中国的镜像站,但是就在2016年的7月开源中国因为和服务商的合同到期,所以关闭了他们的镜像库(新闻)。 经过了一段真空期,阿里云的Maven镜像库悄咪咪的上线了!!! 二、然后就出问题了 网上各位博主通常给出的使用阿里云镜像库的方法是修改~/.m2/settings.xml,在mirrors节点下添加 <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> 并且标榜亲测可用 但是!我在使用Idea的过程中出问题了,因为怎么也同步不到索引,但是正常导库是快到飞起的。 作为强迫症,看到这里红彤彤的,不能忍! 放狗!搜! 终于让我发现这个nexus-maven-repository-index.properties文件存在一个隐藏的文件夹里,也就是到http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties这个地址去获取索引,然后下载nexus-maven-repository-index.gz。 接着我尝试访问阿里云的这个文件夹。 在逗我? 我不甘心,阿里云的同僚们应该不会这么ZZ吧,应该不会,我溜达到仓库列表,抱着试一试的心态进到了Central这个仓库 哦!可以了! 三、最终解决方案 settings.xml中修改的那段代码替换成下面这个即可 <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/repositories/central</url> </mirror> (2020-02-19更新)...

February 3, 2017 · 1 min · 73 words

Spring Boot的Banner

今天来搞点有趣的事情(恶趣味你直说),一个没有脑洞的程序员和咸鱼有什么区别,各种程序里面的彩蛋就是最好的例证,写完业务代码之余,娱乐一下自己,还是蛮有趣的。 今天我来搞得事就是给Spring Boot程序换个Banner,让人一眼就看出,嗯这个程序是你写,那多酷~~啊。 先晒一下我的Banner 原先的Spring Boot的Banner是长这样的 这一点也不独特,一点也不极客! 不开心呢! 我要搞事情! 所以这是怎么做到的呢 其实没有那么多的套路,异常的简单,Spring Boot的开发者已经给你准备好了各种方便的接口 1、第一步 在main/resources目录下创建一个banner.txt 2、第二步 在banner.txt里头开始填你要显示的banner,我们先来试试Hello World! 运行一下下 看!Banner已经被替换掉了! 如果这样就满足了的话,就不是一个充满脑洞优秀的程序员了。 我们继续! 3、第三步 你或许会问了,我的Banner里头颜色是怎么弄的 在Spring的Wiki里面介绍了在banner中可以用到的一些变量,链接 变量 描述 ${application.title} 程序的名称,来源是MANIFEST.MF中的Implementation-Title的值 ${application.version} 当前程序的版本,来源是MANIFEST.MF中的Implementation-Version的值 ${application.formatted-version} 格式化后的程序版本,(Ex. (v1.0)) ${spring-boot.version} SpringBoot的版本,(Ex. 1.4.3.Release) ${spring-boot.formatted-version} 格式化后的SpringBoot版本,(Ex. (v1.4.5.Release)) ${Ansi.NAME} (or ${AnsiColor.NAME}, ${AnsiBackground.NAME}, ${AnsiStyle.NAME}) ANSI编码的参数,NAME为ANSI中的别名 注意:所有Ansi开头的命令作用域是整个banner。 4、ANSI颜色参考 来源:Wiki - ANSI escape code 5、文字生成 单纯的一个Hello World!还是不够酷!我们来生成一个由标点组成的文字,用上现成的 Text to ASCII Art Generator 生成好之后直接在下面的框框里面全选(Win:Ctrl+A;Mac:Command+A)复制到banner即可 6、如果你嫌烦的话 可爱的Banner固然好看,但是可能会影响日志分析系统的工作,所以如果我们要去掉Banner的话只需要修改我们的Application.java就可以了,修改后的main方法如下: public static void main(String[] args) { SpringApplication app = new SpringApplication(MySpringConfiguration....

January 12, 2017 · 2 min · 294 words