GRADLE LÀ GÌ

Gradle là gì?

Gradle là 1 trong Một trong những luật tự động hóa quá trình build với thống trị những thư viện, nhằm buổi tối ưu hóa quy trình biên dịch, gói gọn, thuận tiện hơn cho Việc cải tiến và phát triển phần mềm.

Bạn đang xem: Gradle là gì

Năm 2000, Apabít Ant thành lập và hoạt động nhỏng là 1 trong số những tool gói gọn văn minh với nhanh chóng được sử dụng trong những dự án công trình áp dụng ngôn ngữ Java. Ant chất nhận được đơn vị cải cách và phát triển diễn đạt meta-data của dự án công trình cũng tương tự những vận động vào quá trình build thông qua cỗ cú pháp XML. Tuy nhiên phần đông đoạn mã viết theo tiêu chuẩn của Ant thừa dài cùng tinh vi.

Năm 2004, Apabịt Maven thành lập và hoạt động với giới thiệu các cải thiện so với Ant. Bằng bài toán chỉ dẫn một cấu trúc dự án tiêu chuẩn, Maven có thể chấp nhận được bên cải tiến và phát triển sử dụng một trong số plugin của mình cố kỉnh bởi cần viết toàn bộ những cái code trình bày quá trình gói gọn. Trong khi Maven còn có thể chấp nhận được thiết lập về các tlỗi viện dựa vào trải qua internet, vấn đề đó giúp cho việc share tương tự như cai quản phiên bản trnghỉ ngơi nên thuận tiện hơn. Đổi lại, đơn vị cách tân và phát triển vẫn mất khá nhiều sức lực lao động nhằm tùy chỉnh nếu cấu trúc dự án ngày nay không theo Maven Standard Directory Layout. Và việc vẫn thực hiện XML làm cho tệp tin POM (Project Object Model) trsinh sống yêu cầu lâu năm cái cùng phức hợp nhằm thâu tóm ngắn gọn xúc tích.

Năm 2012, Gradle release version 1.0 phối hợp những điểm mạnh của Ant với Maven đồng thời chế tạo những cải thiện new cùng sử dụng Groovy trong việc giải quyết và xử lý bài xích toán đóng gói.

1. Các ưu thế của Gradle

1.1 Build mang lại những ngôn ngữ

Gradle cung ứng build cho 60 ngôn từ lập trình không giống nhau bao gồm Java, Scala, Pythuôn, C/C++, Android, iOS.

Java + JVM languages

Được thi công để điều khiển xe trên JVM, Gradle hỗ trợ trẻ trung và tràn đầy năng lượng cho những dự án công trình viết bởi Java cùng những ngôn từ JVM khác ví như Scala, Groovy,… với việc cung cấp những loại áp dụng và chế độ cải cách và phát triển thiết yếu như thử nghiệm frameworks (JUnit, TestNG, Spock), application frameworks (Java EE, Grails, Play!), embedded website servers (Jetty) & code analysis cops (Checkstyle, CodeNarc, FindBugs, JDepover, PMD, JaCoCo, Sonar).

Android’s build system

Tích hợp với Android Studio cung cấp thống trị dependency, multi-project. Đồng thời tích đúng theo những test services thông dụng nlỗi AppThwack, TestDroid và Manymo. Hình như, có thể chế tác các APK từ 1 module và upload bọn chúng lên Google Play cùng các app store khác cùng với những phiên bạn dạng khác nhau (miễn phí, paid,…)

C/C++, Objective-C/C++, Assembly, CUnit

Hỗ trợ compiler, assembler với linker; được cho phép phân pân hận các thư viện, tệp tin xúc tiến với tương đối nhiều một số loại (debug, release), platforms (x86, x86_64), phiên bạn dạng (community, enterprise) không giống nhau. Tích thích hợp GCC, CLANG, XCODE, VISUAL C++ …

JavaScript, CSS và website tests

Hỗ trợ những frontend task: consolidate, minify, compress, code quality, compile, source maps.

Xem thêm: Wrap It Up Là Gì - Wrap Up In Vietnamese

1.2 Tích thích hợp công cụ

Từ các IDE (Integrated Development Environment) mang lại các CI (Continuous Integration) hay các điều khoản deploy, Gradle tích phù hợp với tất cả gần như thứ nhưng chúng ta cũng có thể nghĩ về mang đến. Tmê man khảo list các tool hoàn toàn có thể tích hơp: https://gradle.org/why/integrates-with-everything/

1.3 Quản lý dependency dũng mạnh mẽĐịnh nghĩa đơn giản

repositories jcenter()dependencies compile project(":api") compile "org.slf4j:slf4j-api:1.7.10" compile "com.google.guava:guava:18.0" runtime "org.slf4j:slf4j-simple:1.7.10" testCompile("junit:junit:4.12") exclude group: "org.hamcrest" testCompile "org.mockito:mockito-core:1.+"
Có thể nhấn từ ngẫu nhiên repository làm sao biết đến đếntự public hay private mang lại local; pha trộn cùng phối hợp các nhiều loại repository

Maven repositoriespublic (Maven Central, jCenter)third-buổi tiệc ngọt và in-house (Bintray, Artifactory)local Maven repositoryIvy repositoriesCustom và legacy repositoriesFlat filesGiải pháp dependency tối ưuKhông khi nào cài 1 artifact những lầnCacheXác minch qua checksumTraông chồng bắt đầu dependency đảm bảo tính hòa hợp lệ với ngăn ngừa lỗi…Giải quyết xung đột.

Cho phép publish Artifacts lên Ivy xuất xắc Maven repositories.

1.4 Fully Programmable builds

Cho phép kiểm soát cùng kiểm soát và điều chỉnh không giới hạn nhằm Gradle cân xứng với yêu cầu sử dụng.

1.5 Với Enterprise Build Automation thì Gradle nhanh khô nhấtincremental buildbuild cachingparallelization drive1.6 Hỗ trợ build reportingPhân tích build giúp xem được mọi địa điểm đề nghị về tối ưu hóaBáo cáo cho phép gọi sâu hơn kết quả của build tự động hóa cùng với những module và tính năng của nó

2. So sánh với Maven

Dưới đấy là 1 số thiên tài rất nổi bật Khi so sánh cùng với Maven. Có thể xem thêm cụ thể thêm tại: Gradle vs Maven Feature Comparison

Build script viết bằng Gradle nlắp gọn cùng trực quan tiền đọc dễ dàng hơn

*

Thời gian build của gradle nhanh hơnMavenquy trình build ra mắt thọ bởi quá trình clebình yên bộ những artifact và tiếp đến là quá trình gói gọn lại từ trên đầu.những đoạn Unit Test cũng tiêu tốn không hề ít thời gianGradlemột task build phần nhiều được khái niệm input và output, nên những lúc gồm sự biến đổi nhỏ tuổi trong source code, Gradle vẫn chỉ tiến hành build lại 1 phần bắt buộc thiếtGradle đang từ bỏ kiếm tìm tìm các task khác chịu ảnh hưởng task này cùng triển khai quy trình build lạiGradle được cho phép chạy parallel những đoạn code kiểm tra nhờ kia tinh giảm thời hạn của quá trình buildTrong khi Gradle chất nhận được thực hiện việc phân phối hận các đoạn code kiểm tra qua không ít machine không giống nhau nhằm bớt thiểu thời hạn ngóng đợi

Và Lúc chạm mặt lỗi, sẽ chưa hẳn chờ đợi quá lâu để build với gặp lỗi, sửa lỗi với build lại

Mavengiới hạn quá trình build ngay lúc chạm mặt lỗiGradletiến hành hết tất cả những task bao gồm thểtổng vừa lòng toàn bộ các lỗi gặp nên trong một lượt đóng góiGradle tương hợp với Ant, Maven

Cho phép bên cách tân và phát triển phần mềm ko tốn quá nhiều sức lực lúc không hẳn đổi khác toàn thể để thực hiện Gradle.

*

Cộng đồng phát triển áp dụng gradle tăng một biện pháp trẻ trung và tràn trề sức khỏe giữa những năm cách đây không lâu đang góp phần đáng kể trong việc giúp Gradle liên tiếp có thêm những nâng cao mới.

3. Tạo Build Script cơ bản

Dưới đây là build script dễ dàng góp tạo tệp tin jar cùng upload lên hệ thống kiểm tra.


configurations sshAntTaskdependencies sshAntTask "org.apabịt.ant:ant-jsch:1.9.2"# Task Tạo tệp tin jarjar baseName "xxx" # Tên file doFirst zip64 = true # Zip type exclude "META-INF/*.RSA", "META-INF/*SF", "META-INF/*.DSA" # Main class manifest attributes "Main-Class" : xxx # Tập đúng theo các dependency phụ thuộc from configuration.compile.collect it.isDirectory() ? it : zipTree(it) ant.taskdef name: "scp" classname: "org.apache.tools.ant.taskdefs.optional.ssh.Scp", classpath: configurations.sshAntTask.asPath# Task copy tệp tin jar cho tới VPS test# Bằng bí quyết sử dụng ssh scptask scpJar() { doLast { file: file("xxx"), # Path file yêu cầu copy trust: true, todir: "user
Kết hợp với IDE, ví dụ với IntelliJ > Run > Edit Configurations để có thể gấp rút triển khai các task bên trên với cùng một vài phím tắt.