rest规范 ; restful 风格; gradel介绍 ; idea安装 ;
2017-04-02 20:15
591 查看
【说明】上午整理了一下心情;下午继续开始任务,了解了restful,知道了那个牛人的博士论文,下载了管理工具gradle,并且部署了环境;晚上安装了idea继承环境并且建了一个简单的gradle项目(对着教程第一次使用idea我也是需要适应半天)
一:今日完成
1)rest架构规范
2)idea环境安装
3)gradle插件使用
二:明日计划
1)建立自己的REST接口。
2)使用PostMan/dhc测试自己写的接口,确认接口可以正常使用。
3)任务二完成
三:疑难问题
restful架构搞的我也是一脸懵逼,看了大量的文章,包括上层的思想介绍,下层的代码演示,还是不得要领
四:思考总结
今天配置环境变量的时候竟然因为目录带有中文出现了编译问题!下次要注意
Gradle是一种构建工具,它可以帮你管理项目中的差异,依赖,编译,打包,部署......,你可以定义满足自己需要的构建逻辑,写入到build.gradle中供日后复用.
Gradle不是一种编程语言,它不能帮你实现软件中的任何实际功能
ant可以自动化打包逻辑。
maven也可以自动化打包,相比于ant,它多做的事是帮你下载jar包。
但是maven的打包逻辑太死板,定制起来太麻烦,不如ant好用。gradle就是又能自动下jar包,又能自己写脚本,并且脚本写起来还比ant好用的这么个东西。
AS其实就是Intellij IDEA的安卓开发环境特供版(谷歌定制版),Intellij IDEA是有收费版本的IDE。
Ant和Maven都是基于XML的构建工具,Gradle是用Groovy编写的构建工具,Groovy是JVM衍生的与JAVA语法高度兼容的动态强类型语言。
Gradle通过编写一个名为build.gradle的脚本文件对项目进行设置,再根据这个脚本对项目进行构建(复杂的项目也有其他文件)
Gradle 脚本本质上就是Groovy脚本,只不过高度利用了groovy的语法糖,例如省略方法参数括号和省略句尾分号等,让代码看起来像DSL。
所以几乎所有java和groovy支持的语法,它的脚本都支持。(使用JAVA和GROOVY的SDK应该也是没问题的)
Gradle支持基于惯例的构建,并有丰富的适合不同情景下的插件库,光有官方用户手册支持的就有20多种,方便构建。
Gradle里有两个基本概念:项目(projects)和任务(tasks)。项目由多个任务组成,一个项目可以理解为提供给不同设备的构建版本,如桌面版、网页版、安卓版、iOS版等等,也可以理解为一种行为,例如部署应用到生产环境。任务相当于Ant的target,可以理解成一个构建中原子性的工作,例如编译、打包、执行等。需要注意的是,Ant中他自己的命令例如javac、copy等也叫做task,但Ant的task远没有Gradle的task那么自由。
Gradle的构建分两个阶段,第一阶段是设置阶段(configuration phase),分析构建脚本,处理依赖关系和执行顺序等,脚本本身也需要依赖来完成自身的分析。第二阶段是执行阶段(execution phase),此阶段真正构建项目并执行项目下的各个任务。
Ant与Maven对于Gradle,前者编写容易,但功能有限,需要人工操作的过程也多;后者依托于庞大的依赖仓库,因此有着强大的外部依赖管理,但添加本地依赖并不方便,且项目不能灵活修改。而Gradle能很好地结合Ant与Maven各自的优点,可以随意的编写任务并组合成项目,直接利用Maven仓库,并且能很好的支持传递依赖和内部依赖。(本部分为个人主观意见,可能与大多数人的意见并不相同)(其实也都是别人的个人主观意见,来源于我当初搜索的Gradle相关文章内容)
通俗一点类比成吃饭的话,大致就是:Ant是自己买菜洗菜烧水做饭,Maven是去饭店点餐,Gradle是3D打印食物。
一句话概括就是:依赖管理和任务执行。
像Ruby里面的bundler+rake,像iOS中的cocoapods,像node中的npm+grunt.
通俗的讲就是:你的项目需要哪些第三方库,它帮你把它们都下载下来,并且编译好放到指定的位置,你就直接可以import后用了。
它本身是基于Apache的ant和maven的,但都不是特别好用,要引入一个库,还得写好多行的XML,麻烦死了。而且他们在任务执行上都比较弱,所以gradle就逐渐发展壮大了并被Google所推崇了。
编译源代码只是整个软件开发过程的一个方面,更重要的是,你要把你的软件发布到生产环境中来产生商业价值,所以,你要运行测试,构建分布、分析代码质量、甚至为不同目标环境提供不同版本,然后部署。
整个过程可以分成以下几个步骤:
编译源代码
运行单元测试和集成测试
执行静态代码分析、生成分析报告
创建发布版本
部署到目标环境
部署传递过程
执行冒烟测试和自动功能测试
如果你手工去操作这些过程会很繁琐,效率低下,Gradle提供自动化的构建机制,上面的每个步骤都可以表示成Gradle里面的一个任务(Task),任务之间可以相互依赖,比如你定义任务A和任务B,
运行命令$ gradle -q之后(参数q让Gradle不要打印错误之外的日志),就能看到如下的预期输出:
i'm task Ai'm task B, and I depend on taskA执行完之后Gradle会生成相应的报告,如果没有问题就可以发布到生产环境中。Gradle脚本是基于Groovy领域特定语言,也就是说构建文件也是代码,Maven引入的XML配置文件可读性和可扩展性比较差,Gradle可以让你像写代码一样写出容易维护、可复用、可读性好、易于理解的构建代码。Gradle同样引入了依赖管理、仓库和标准项目布局,Gradle引入的领域特定语言使得添加和删除依赖非常方便,你只需要在dependency块里面添加一行代码,注明要在哪个配置部分引入依赖,以及要引入哪个依赖,比如:
传统的构建工具比如ant一开始并没有引入中央仓库的概念,他需要手动复制依赖的库文件到指定的目录,这使得这些JAR文件添加到版本控制系统当中,而Gradle会自动解析你的依赖配置,从中央仓库比如mavenCentral()中解析并下载依赖到你的本地仓库中,这些文件并不会添加到版本控制系统当中,Gradle也支持传递依赖,你也可以排错部分传递依赖或者干脆去掉传递依赖,还可以支持动态版本,只需要把最后一位数字改成+号。Gradle支持多项目构建,当你的项目变得越来越庞大的时候,维护起来会比较困难,Gradle多项目构建使得你可以根据代码的功能把项目分成几个子项目,比如web项目开发中把项目分成逻辑、视图和控制三个模块,每个模块可以有各自的配置和依赖,也可以定义通用的配置。当你需要为不同的环境打生成不同的发布时,以往可能是为每一个目标环境新建一个过程,有了gradle你不需要重复的工作,你会很容易生成不同的版本,你可以指定多个版本共同的构建逻辑,也可以给他们单独指定一些脚本。总而言之,Gradle并没有引入太新鲜的东西,它是一个结合Ant和Maven理念的优秀实现,最重要的就是引入了Groovy语言,使得构建代码更加容易维护、可读性强、易于扩展,给了你充分的自由去自定义你的项目。
依赖:Android Studio, Gradle, 其中过程,
Android Studio使用Gradle来编译Android apk 本文大致讲述其中过程
Gradle
依赖:Apache Ant ,Apache Maven ,项目自动化建构工具 ,Groovy, 特定领域语言(DSL),
Gradle =>一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)
Apache Ant => 由Apache 提供的自动化软件构建工具 (可以理解为其负责软件的编译) 开始于2000年左右
Apache Maven => 是由Apache 提供的管理项目的构建 报告和文档的软件项目管理工具 (我将其理解为 通过pom.xml来描述软件依赖关系 并提供一个云端类库) 开始于2001年左右
项目自动化建构工具 => 抽象项目编译过程 提供一个容易使用的接口的工具
Groovy => 一门编程语言 基于JVM 的面对对象的动态脚本语言
特定领域语言=>为了解决某个特定领域的问题 而编写的语言 一般基于其他语言
Android Studio =>2013年谷歌推出的Android开发环境 使用Gradle 作为编译工具
其中过程
依赖:grdle基本知识,编译过程,
Android Studio 使用Gradle做为Android apk的编译工具 在android studio执行run 实际上底层调用的是gradle 命令 由gradle再去使用Android SDK中编译工具 这主要是因为直接使用sdk的编译工具太麻烦太痛苦 而gradle提供了一个很好的接口 让我们能通过命令行来编译android apk
grdle基本知识
gradle通过解析build.gradle这个文件来运行
build.gradle 主要由task和一些配置组成,task之间有相互依赖关系 通过这些依赖关系和配置就能编译项目
可以通过 apply plugin 来加入一些默认的task 例如
这是java的插件 他加入了许多编译java的task 如果你的目录结构正确 那么通过gradle 运行 task 就能编译java项目
和Maven一样,Gradle只是提供了构建项目的一个框架,真正起作用的是Plugin。Gradle在默认情况下为我们提供了许多常用的Plugin,其中包括有构建Java项目的Plugin,还有War,Ear等。与Maven不同的是,Gradle不提供内建的项目生命周期管理,只是java Plugin向Project中添加了许多Task,这些Task依次执行,为我们营造了一种如同Maven般项目构建周期。
一:今日完成
1)rest架构规范
2)idea环境安装
3)gradle插件使用
二:明日计划
1)建立自己的REST接口。
2)使用PostMan/dhc测试自己写的接口,确认接口可以正常使用。
3)任务二完成
三:疑难问题
restful架构搞的我也是一脸懵逼,看了大量的文章,包括上层的思想介绍,下层的代码演示,还是不得要领
四:思考总结
今天配置环境变量的时候竟然因为目录带有中文出现了编译问题!下次要注意
Gradle是一种构建工具,它可以帮你管理项目中的差异,依赖,编译,打包,部署......,你可以定义满足自己需要的构建逻辑,写入到build.gradle中供日后复用.
Gradle不是一种编程语言,它不能帮你实现软件中的任何实际功能
ant可以自动化打包逻辑。
maven也可以自动化打包,相比于ant,它多做的事是帮你下载jar包。
但是maven的打包逻辑太死板,定制起来太麻烦,不如ant好用。gradle就是又能自动下jar包,又能自己写脚本,并且脚本写起来还比ant好用的这么个东西。
AS其实就是Intellij IDEA的安卓开发环境特供版(谷歌定制版),Intellij IDEA是有收费版本的IDE。
Ant和Maven都是基于XML的构建工具,Gradle是用Groovy编写的构建工具,Groovy是JVM衍生的与JAVA语法高度兼容的动态强类型语言。
Gradle通过编写一个名为build.gradle的脚本文件对项目进行设置,再根据这个脚本对项目进行构建(复杂的项目也有其他文件)
Gradle 脚本本质上就是Groovy脚本,只不过高度利用了groovy的语法糖,例如省略方法参数括号和省略句尾分号等,让代码看起来像DSL。
所以几乎所有java和groovy支持的语法,它的脚本都支持。(使用JAVA和GROOVY的SDK应该也是没问题的)
Gradle支持基于惯例的构建,并有丰富的适合不同情景下的插件库,光有官方用户手册支持的就有20多种,方便构建。
Gradle里有两个基本概念:项目(projects)和任务(tasks)。项目由多个任务组成,一个项目可以理解为提供给不同设备的构建版本,如桌面版、网页版、安卓版、iOS版等等,也可以理解为一种行为,例如部署应用到生产环境。任务相当于Ant的target,可以理解成一个构建中原子性的工作,例如编译、打包、执行等。需要注意的是,Ant中他自己的命令例如javac、copy等也叫做task,但Ant的task远没有Gradle的task那么自由。
Gradle的构建分两个阶段,第一阶段是设置阶段(configuration phase),分析构建脚本,处理依赖关系和执行顺序等,脚本本身也需要依赖来完成自身的分析。第二阶段是执行阶段(execution phase),此阶段真正构建项目并执行项目下的各个任务。
Ant与Maven对于Gradle,前者编写容易,但功能有限,需要人工操作的过程也多;后者依托于庞大的依赖仓库,因此有着强大的外部依赖管理,但添加本地依赖并不方便,且项目不能灵活修改。而Gradle能很好地结合Ant与Maven各自的优点,可以随意的编写任务并组合成项目,直接利用Maven仓库,并且能很好的支持传递依赖和内部依赖。(本部分为个人主观意见,可能与大多数人的意见并不相同)(其实也都是别人的个人主观意见,来源于我当初搜索的Gradle相关文章内容)
通俗一点类比成吃饭的话,大致就是:Ant是自己买菜洗菜烧水做饭,Maven是去饭店点餐,Gradle是3D打印食物。
一句话概括就是:依赖管理和任务执行。
像Ruby里面的bundler+rake,像iOS中的cocoapods,像node中的npm+grunt.
通俗的讲就是:你的项目需要哪些第三方库,它帮你把它们都下载下来,并且编译好放到指定的位置,你就直接可以import后用了。
它本身是基于Apache的ant和maven的,但都不是特别好用,要引入一个库,还得写好多行的XML,麻烦死了。而且他们在任务执行上都比较弱,所以gradle就逐渐发展壮大了并被Google所推崇了。
编译源代码只是整个软件开发过程的一个方面,更重要的是,你要把你的软件发布到生产环境中来产生商业价值,所以,你要运行测试,构建分布、分析代码质量、甚至为不同目标环境提供不同版本,然后部署。
整个过程可以分成以下几个步骤:
编译源代码
运行单元测试和集成测试
执行静态代码分析、生成分析报告
创建发布版本
部署到目标环境
部署传递过程
执行冒烟测试和自动功能测试
如果你手工去操作这些过程会很繁琐,效率低下,Gradle提供自动化的构建机制,上面的每个步骤都可以表示成Gradle里面的一个任务(Task),任务之间可以相互依赖,比如你定义任务A和任务B,
defaultTasks 'taskB' task taskA << { println "i'm task A" } task taskB << { println "i'm task B, and I depend on " + taskA.name } taskB.dependsOn taskA
运行命令$ gradle -q之后(参数q让Gradle不要打印错误之外的日志),就能看到如下的预期输出:
i'm task Ai'm task B, and I depend on taskA执行完之后Gradle会生成相应的报告,如果没有问题就可以发布到生产环境中。Gradle脚本是基于Groovy领域特定语言,也就是说构建文件也是代码,Maven引入的XML配置文件可读性和可扩展性比较差,Gradle可以让你像写代码一样写出容易维护、可复用、可读性好、易于理解的构建代码。Gradle同样引入了依赖管理、仓库和标准项目布局,Gradle引入的领域特定语言使得添加和删除依赖非常方便,你只需要在dependency块里面添加一行代码,注明要在哪个配置部分引入依赖,以及要引入哪个依赖,比如:
dependencies { compile('org.springframework:spring-core:2.5.6')//表示编译期依赖spring-core这个库 testCompile('junit:junit:4.7')//表示测试代码的时候依赖junit这个库 }
传统的构建工具比如ant一开始并没有引入中央仓库的概念,他需要手动复制依赖的库文件到指定的目录,这使得这些JAR文件添加到版本控制系统当中,而Gradle会自动解析你的依赖配置,从中央仓库比如mavenCentral()中解析并下载依赖到你的本地仓库中,这些文件并不会添加到版本控制系统当中,Gradle也支持传递依赖,你也可以排错部分传递依赖或者干脆去掉传递依赖,还可以支持动态版本,只需要把最后一位数字改成+号。Gradle支持多项目构建,当你的项目变得越来越庞大的时候,维护起来会比较困难,Gradle多项目构建使得你可以根据代码的功能把项目分成几个子项目,比如web项目开发中把项目分成逻辑、视图和控制三个模块,每个模块可以有各自的配置和依赖,也可以定义通用的配置。当你需要为不同的环境打生成不同的发布时,以往可能是为每一个目标环境新建一个过程,有了gradle你不需要重复的工作,你会很容易生成不同的版本,你可以指定多个版本共同的构建逻辑,也可以给他们单独指定一些脚本。总而言之,Gradle并没有引入太新鲜的东西,它是一个结合Ant和Maven理念的优秀实现,最重要的就是引入了Groovy语言,使得构建代码更加容易维护、可读性强、易于扩展,给了你充分的自由去自定义你的项目。
依赖:Android Studio, Gradle, 其中过程,
Android Studio使用Gradle来编译Android apk 本文大致讲述其中过程
Gradle
依赖:Apache Ant ,Apache Maven ,项目自动化建构工具 ,Groovy, 特定领域语言(DSL),
Gradle =>一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)
Apache Ant => 由Apache 提供的自动化软件构建工具 (可以理解为其负责软件的编译) 开始于2000年左右
Apache Maven => 是由Apache 提供的管理项目的构建 报告和文档的软件项目管理工具 (我将其理解为 通过pom.xml来描述软件依赖关系 并提供一个云端类库) 开始于2001年左右
项目自动化建构工具 => 抽象项目编译过程 提供一个容易使用的接口的工具
Groovy => 一门编程语言 基于JVM 的面对对象的动态脚本语言
特定领域语言=>为了解决某个特定领域的问题 而编写的语言 一般基于其他语言
Android Studio =>2013年谷歌推出的Android开发环境 使用Gradle 作为编译工具
其中过程
依赖:grdle基本知识,编译过程,
Android Studio 使用Gradle做为Android apk的编译工具 在android studio执行run 实际上底层调用的是gradle 命令 由gradle再去使用Android SDK中编译工具 这主要是因为直接使用sdk的编译工具太麻烦太痛苦 而gradle提供了一个很好的接口 让我们能通过命令行来编译android apk
grdle基本知识
gradle通过解析build.gradle这个文件来运行
build.gradle 主要由task和一些配置组成,task之间有相互依赖关系 通过这些依赖关系和配置就能编译项目
可以通过 apply plugin 来加入一些默认的task 例如
apply plugin: 'java'
这是java的插件 他加入了许多编译java的task 如果你的目录结构正确 那么通过gradle 运行 task 就能编译java项目
和Maven一样,Gradle只是提供了构建项目的一个框架,真正起作用的是Plugin。Gradle在默认情况下为我们提供了许多常用的Plugin,其中包括有构建Java项目的Plugin,还有War,Ear等。与Maven不同的是,Gradle不提供内建的项目生命周期管理,只是java Plugin向Project中添加了许多Task,这些Task依次执行,为我们营造了一种如同Maven般项目构建周期。
相关文章推荐
- Dubbox中REST风格的远程调用(Restful Remoting)介绍
- 简单介绍使用WCF的Web编程模型开发REST风格的Web Service
- Jersey : Java规范下REST风格Web Service开发框架
- spring和resteasy集成,构建restful风格服务
- 全新Web开发风格-REST架构介绍
- Restlet - REST架构风格的介绍
- RESTful GeoWeb学习手记(一):构建REST风格的网络服务
- 在Dubbo中开发REST风格的远程调用(RESTful Remoting)
- REST构架风格介绍:状态表述转移
- REST构架风格介绍:状态表述转移
- ReSharper的功能真的很强大主要是针对代码规范和优化,园子里介绍的也不少,如果你没有安装,那我只能表示你们会相见恨晚
- 全新Web开发风格-REST架构介绍
- REST构架风格介绍之一:状态表述转移(ZZ)
- REST构架风格介绍之二:CRUD
- Restlet - REST架构风格的介绍
- RESTful GeoWeb学习手记(一):构建REST风格的网络服务
- REST构架风格介绍之一:状态表述转移
- 全新Web开发风格-REST架构介绍
- Restful是一种非常优美的http接口设计风格及设计规范
- 在Dubbo中开发REST风格的远程调用(RESTful Remoting)