项目生命周期

第七章 生命周期和插件

别来无恙 提交于 2019-11-30 19:54:24
  除了坐标、依赖和仓库之外,Maven另外两个核心概念是声明周期和插件。Maven的生命周期是抽象的,其实际行为都由插件来完成,如package阶段的任务可能有maven-jar-plugin完成。生命周期和插件两者协同工作,密不可分。 ###7.1 何为生命周期###   Maven的生命周期就是为了对所有的构建过程进行抽象和统一,生命周期包含了项目的清理,初始化,编译,测试,打包,集成测试,验证和站点生成等几乎所有构建步骤,几乎所有项目的构建,能够映射到这样一个生命周期上。生命周期是抽象的,这也意味着生命周期本身不做任何实际的工作,在Maven设计中,实际的任务都是交由插件完成的,这种思想和设计模式中的模板方法非常类似,模板方法模式在父类中定义算法的整体结构,子类可以通过实现或者重写父类的方法来控制实际的行为,这样既保证了算法有足够的可扩展性,又能够严格控制算法的整体结构,如下的模板方法抽象类能够很好的体现Maven生命周期的概念: Public void build(){ initialize(); compile(); test(); packagee(); integrationTest();deploy(); } protected abstract void initialize(); protected abstract void compile();

使用Maven的好处

拈花ヽ惹草 提交于 2019-11-28 15:59:50
Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。 每个Java项目的目录结构都没有一个统一的标准,配置文件到处都是,单元测试代码到底应该放在那里也没有一个权威的规范。 因此,我们就要用到Maven(使用Ant也可以,不过编写Ant的xml脚本比较麻烦)----一个项目管理工具。 Maven主要做了两件事: 统一开发规范与工具 统一管理jar包 如果 没有Maven ,你可能不得不经历下面的过程: 1 如果使用了spring,去spring的官网下载jar包;如果使用hibernate,去hibernate的官网下载Jar包;如果使用Log4j,去log4j的官网 下载jar包..... 2 当某些jar包有依赖的时候,还要去下载对应的依赖jar包 3 当jar包依赖有冲突时,不得不一个一个的排查 4 执行构建时,需要使用ant写出很多重复的任务代码 5 当新人加入开发时,需要拷贝大量的jar包,然后重复进行构建 6 当进行测试时,需要一个一个的运行....检查 有了Maven

Android Architecture Components--项目实战

荒凉一梦 提交于 2019-11-26 18:21:57
转载请注明出处,谢谢! 上个月 Google Android Architecture Components 1.0稳定版发布,抽工作间隙写了个demo,仅供参考 Github地址: https://github.com/AllenWen/android-iWeather 1、亮点 一是生命周期管理---Lifecycles,各类组件的引用与周期绑定,从而有效避免内存泄漏; 二是LiveData,数据流中的主角,作用类似于Rx的Observer; 三是推出全新数据库ORM框架---Room,当然也是生命周期安全的,修改即时生效; 四是一个叫Paging的库,用作分页处理,本项目没用到。 2、概述 看图知道,当然是一个MVVM框架了,Acitivity/Fragment 是View ,ViewModel充当VM,由本地数据库和网络数据组成的仓库(Repository)就是Model, Acitivity/Fragment可以实现 LifecycleOwner接口,注册 LifecycleObserver从而实现生命周期管理, LiveData充当单向数据流中的数据,与生命周期绑定 3、项目 借助一个免费天气api, 心知天气 ,写了个极简风格的天气应用,就不贴图了,详情见Github 转载于:https://www.cnblogs.com/AllenWen/p/8000592