(Java,Android)三大自动化构建工具 Ant,Gradle,Maven(JCenter),并自动打Apk包

本文主要是介绍(Java,Android)三大自动化构建工具 Ant,Gradle,Maven(JCenter),并自动打Apk包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  build叫做构建,compile叫做编译。
  构建工具有很多种 :成熟大型项目常用的make ,Android平台开发应用的gradle ,人工智能TensorFlow的bazel。

> 1.Ant 
  ant的兄弟make,ant做的很多事情,大部分是曾经有一个叫make的所做的,不过对象不同,make更多应用于c/c++ ,ant更多应用于Java。在eclipse里先天支持ant,所以你可以在eclipse里边直接写build.xml。
  Ant是Java的生成工具,是Apache的核心项目;直接在apache官网下载即可, http://ant.apache.org/bindownload.cgi
  Ant类似于Unix中的Make工具,都是用来编译、生成;Ant是跨平台的,而Make不能;
  Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目录、复制文件等功能,所以可以直接点击Ant文件,即可编译生成你的项目;
 Ant学习总结- http://blog.csdn.net/xiazdong/article/details/7038851

Apache Ant热门的Java自动化构建工具- http://ant.apache.org/

> 2.Gradle

Gradle,自动化构建工具- https://gradle.org/ . Android Studio支持Gradle。
 Gradle是一个自由开源的自动化构建工具。它扩展了Apache Ant和Maven。它使用DSL(“域特定语言”),而不是Maven/Ant使用的XML格式。Gradle的另一大特点是DAG(“有向无环图”),可用来找到可以构建和运行任务的正确顺序。

  如果你在Gradle项目中使用了标准的Maven项目结构的话,那么在Gradle中也无需进行多余的配置,只需在文件中包含apply plugin:’java’,系统会自动识别source、resource、test srouce、 test resource等相应资源。不过Gradle作为JVM上的构建工具,也同时支持groovy、scala等源代码的构建,甚至支持Java、groovy、scala语言的混合构建。虽然Maven通过一些插件(比如maven-scala-plugin)也能达到相同目的,但配置方面显然Gradle要更优雅一些。
  Maven和Gradle设计时都采用了插件机制。但显然Gradle更胜一筹。主要原因在于Maven是基于XML进行配置。所以其配置语法太受限于XML。即使实现很小的功能都需要设计一个插件,建立其与XML配置的关联。
  Maven的设计核心Convention Over Configuration被Gradle更加发扬光大,而Gradle的配置即代码又超越了Maven。在Gradle中任何配置都可以作为代码被执行的,我们也可以随时使用已有的Ant脚本(Ant task是Gradle中的一等公民)、Java类库、Groovy类库来辅助完成构建任务的编写。    在Gradle中,与Makefile的"目标"相对应的概念是"任务",即"task",Gradle的构建过程,就是执行一条一条"task"任务的过程, 同样,一个"task"也是可以依赖另一个"task"的,这样,通过这种依赖关系,就可以将整个项目中各个"task"链接到一起了。Gradle将所有的"task"的定义全部交给Plugin来完成,由于每一种工程类型(Java项目、Android项目等),其构建过程都是大同小异的,因此为每一种类型的项目定义好了一种通用的Plugin,以后同类型的项目就可以直接使用该Plugin了,非常的灵活和方便。
  Gradle真的很强大很灵活,它将最核心的构建规都则交给了Plugin来完成,这样,轻松实现了构建过程的通用性,开发者只需要关注业务逻辑,以及少许的配置即可完成自动化编译和部署的过程. 

-- make工具在Android平台的运用:
  为了加快AOSP项目的编译速度,Android团队在N版本添加了ninja构建工具,ninja构建工具相对于make构建工具更底层。通过开源项目kati(kati是项目名,但是最终编译生成的程序名却是叫做ckati,后续我们将使用ckati这个名字)将Makefile文件翻译成ninja文件。make和ninja的关系就像cmake和make。还有一点要注意的,由于7.1以后部分使用的是Soong+Buleprint这套构建工具,将bp文件转换成ninja文件,所以Makefile文件和Buleprint文件是混合使用的,分析Makefile文件要小心一点。不过Blueprint+Soong这套构建工具代替make、kati这套构建工具只是时间问题。

> 3.Maven (jcenter仓库)

Apache Maven 用于Java的自动化构建工具- https://maven.apache.org/
  Apache Maven是一个免费开源的自动化构建工具。它可用来做依赖管理和构建,并且主要用于Java项目。但不限于基于Java的项目,也可以使用其他编程语言,如Ruby,Python,C#,Scala和其他计算机编程语言。

  Maven,只知道其名声很大,其作用是用来管理jar 包的。JAR文件都由CVS来维护; Maven(project.xml 和 maven.xml)与Ant(build.xml);Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。
  maven的用途、核心概念(Pom、Repositories、Artifact、Build Lifecycle、Goal)、用法(Archetype意义及创建各种项目)、maven常用参数和命令以及简单故障排除、maven扩展(eclipse、cobertura、findbugs、插件开发)、maven配置。
  maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。
  maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性。利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。
  maven中央仓库(http://repo1.maven.org/maven2/)是由Sonatype公司提供的服务,它是Apache Maven、SBT和其他构建系统的默认仓库,并能很容易被Apache Ant/Ivy、Gradle和其他工具所使用。开源组织例如Apache软件基金会、Eclipse基金会、JBoss和很多个人开源项目都将构件发布到中央仓库。 maven中央仓库已经将内容浏览功能禁掉了,可在http://search.maven.org/查询构件。
  注:不管是jcenter还是Maven Central ,两者都是Maven仓库

-- jCenter库
Android 快速发布开源项目到jcenter- http://blog.csdn.net/lmj623565791/article/details/51148825
使用Gradle发布Android开源项目到JCenter- http://blog.csdn.net/maosidiaoxian/article/details/43148643
Android studio 是从哪里得到库的?- http://blog.csdn.net/lu_xin_/article/details/51134849
jCenter库- https://jcenter.bintray.com

手把手图文并茂教你发布Android开源库(Jcenter maven)- https://www.jianshu.com/p/f4ee4dc56b41
JCenter仓库- https://bintray.com/bintray/jcenter
  jCenter库是一个著名的 Maven 仓库。编译脚本(buildscript)在编译工程的根目录,构建文件(build.gradle)用来告知Gradle去哪里下载对应的插件。mavenCenteral()作为maven的远端默认仓库。JCenter仓库的所有内容通过一个CDN经由HTTPS连接传输,速度也是很快的。使用jcenter()远端仓库用来支持java库的依赖。
   JCenter是Goovy Grape内的默认仓库,Gradle内建支持jcenter()仓库,项目库打包成aar文件类似jar,只是多了res,lib文件的包,上传到jcenter后,可以很方面的在本地调用库文件。
   jCenter库是由JFrog公司提供的Bintray中的Java仓库。它是当前世界上最大的Java和Android开源软件构件仓库。 所有内容都通过内容分发网络(CDN)使用加密https连接获取。JCenter是Goovy Grape内的默认仓库,Gradle内建支持(jcenter()仓库),非常易于在(可能除了Maven之外的)其他构建工具内进行配置。
  JCenter相比mavenCenter构件更多,性能也更好。但还是有些构件仅存在mavenCenter中。https://bintray.com/


> Ant/maven/Gradle自动打包,Eclipse/Android Studio的使用自动化之旅
Ant自动编译打包&发布 android项目- http://www.cnblogs.com/yaozhongxiao/p/3523061.html
android使用ant自动打包(包括更改文件中的内容)- http://blog.csdn.net/kakaxi1o1/article/details/46351215
使用ant构建android自动化打包实例源码- http://download.csdn.net/detail/javazejian/9417035
用ant的build.xml构建自动化打包android apk 完全详解- http://blog.csdn.net/javazejian/article/details/50579416


使用maven构建android 的apk包并自动签名- https://www.oschina.net/question/199946_38409
Maven打包/构建Android工程- http://blog.csdn.net/mem_lost/article/details/44561163
maven(完整Android项目多渠道打包、签名、混淆进阶)- http://blog.csdn.net/spring5555/article/details/43704633

这篇关于(Java,Android)三大自动化构建工具 Ant,Gradle,Maven(JCenter),并自动打Apk包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/416840

相关文章

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.