本站通告

本站已从Hexo迁移转到Hugo(Hugo自称是The world’s fastest framework for building websites)。Hugo是一个高效的静态网站生成器,它的生成速度比Hexo更快 (Hexo是真的慢),且使用Hugo在本地编辑完成保存时,会自动触发浏览器的即时刷新动作,编辑完成就能立即看到文章最终的整体效果,给人的体验感很不错。

梦回从前,前博客的传送门:https://fanlychie.github.io/

阅读全文

Maven多环境构建配置

一个项目从开发到最后发布上线,通常需要在多套不同的环境经受反复的测试和验证,例如开发环境、测试环境、预生产环境、生产环境等。项目部署到不同的环境时,项目的配置通常也是不同的,例如数据库的数据源配置等。maven提供了一套profiles配置,开发者可以在项目POM文件中预先定义好若干个不同环境的profile配置,项目可以根据不同的构建参数来动态选择其中的一个环境设置。这就意味着相同的一套项目代码,可以在构建时根据传入的不同环境参数打出不同环境的软件包来。这也是maven竭力保证的软件可移植性。

阅读全文

Maven多模块项目

以模块的形式来组织项目,可以使得项目的组织结构更加清晰更易维护,每个模块都可以进行高内聚和独立部署。模块之间的依赖关系可以自由进行组合,以提高软件组件的重用,同时各模块之间能够实现松耦合。

阅读全文

Maven镜像

如果一个仓库X可以提供仓库Y存储的所有构件,那么就可以称仓库X是仓库Y的一个镜像。由于地理位置等原因,国内网络连接Maven官方的中央仓库网速一般较慢或时常出现网络不稳定的状态,从而导致项目在构建所需的时间较长或失败。使用镜像的好处就是,它往往能提供比中央仓库更快的服务(通常选择地理位置上与自己较近且口碑较好的镜像), 从而提高下载速度, 最终达到提高项目构建效率的目的。

阅读全文

Maven仓库

Maven仓库分为两种,一种是本地仓库,一种是远程仓库。
本地仓库是maven用来在本地机器上存储从远程仓库下载回来的构件的位置。
远程仓库包含了绝大多数流行的开源的java构件,项目依赖的构件一般都可以在这里下载。不同的远程仓库可能包含不同的java构件。

阅读全文

Maven生命周期

Maven的生命周期是对项目所有的构建过程进行抽象和统一。它包含了项目的清理、初始化、编译、测试、打包、部署和站点生成等构建步骤。Maven的生命周期本质是定义项目构建的各个步骤,它本身是抽象的,并不作任何的具体工作,而是将构建过程中的各个步骤任务交个相对应的插件来完成。这使得Maven的生命周期具有良好的扩展性,开发者可以自己编写插件实现代码绑定到构建的某个步骤。当然,在绝大部分场景下,开发者不必这样来做,因为Maven初始为项目构建的各个步骤绑定了默认的插件。

阅读全文

Maven Super POM

所有maven模块(项目)的POM(Project Object Model,项目对象模型)都隐式的继承了Super POM。Super POM中定义了一组标准的配置变量。maven模块(项目)的POM会自动继承这些配置变量,你可以在maven模块(项目)的POM文件中直接使用它们,或者通过重新声明以覆盖它们。

阅读全文