Đã đăng vô thg 2 trăng tròn, 2018 4:20 CH
8 phút đọc
Bạn đang xem: gradle la gi
Xem thêm: come across la gi
1.Giới thiệu
Trong quy trình cách tân và phát triển ứng dụng, việc tự động hóa hóa quy trình build và quản lý và vận hành những tủ sách đặc biệt cần thiết, nhằm mục tiêu tối ưu hóa quy trình biên dịch, đóng góp gói; thuận tiện rộng lớn cho tới việc cách tân và phát triển ứng dụng, hao hao maven và gradle cũng là một trong trong mỗi khí cụ bại liệt.
- Năm 2000, Apache Ant Thành lập như là một trong trong mỗi tool gói gọn văn minh và nhanh gọn lẹ được dùng trong số dự án công trình dùng ngôn từ Java. Ant được chấp nhận căn nhà cách tân và phát triển tế bào mô tả meta-data của dự án công trình cũng tựa như những sinh hoạt vô quy trình build trải qua cỗ cú pháp XML. Tuy nhiên những đoạn mã ghi chép theo gót chi chuẩn chỉnh của Ant vượt lên trước lâu năm và phức tạp.
- Năm 2004, Apache Maven Thành lập và thể hiện những nâng cấp đối với Ant. phẳng phiu việc thể hiện một cấu hình dự án công trình chi chuẩn chỉnh, Maven được chấp nhận căn nhà cách tân và phát triển dùng một trong số plugin của tôi chứ không nên ghi chép toàn cỗ những dòng sản phẩm code tế bào mô tả quy trình gói gọn. Trong khi Maven còn được chấp nhận chuyển vận về những tủ sách dựa vào trải qua mạng internet, điều này hỗ trợ cho việc share hao hao quản lý và vận hành phiên phiên bản trở thành đơn giản rộng lớn. Đổi lại, căn nhà cách tân và phát triển tiếp tục thất lạc tương đối nhiều sức lực lao động nhằm tùy chỉnh nếu như cấu hình dự án công trình thời điểm hiện tại ko tuân theo gót Maven Standard Directory Layout. Và việc vẫn dùng XML thực hiện cho tới tệp tin POM (Project Object Model) trở thành dông dài và phức tạp nhằm thâu tóm logic.
- Gradle phối kết hợp những điểm mạnh của Ant và Maven đôi khi thêm vô những nâng cấp mới mẻ và dùng Groovy trong những công việc xử lý việc gói gọn.
2.Các điểm mạnh của gradle
- Gradle phối kết hợp những điểm mạnh của Ant và Maven đôi khi mang lại những nâng cấp mới mẻ trải qua việc dùng Groovy (một trong mỗi ngôn từ JVM) trong những công việc xử lý việc gói gọn. Nhờ vậy build script ghi chép vì như thế Gradle trở thành ngắn ngủn gọn gàng và trực quan lại đọc dễ rộng lớn.
- Ngoài việc dùng Groovy thực hiện DSL, Gradle cũng để ý tương hỗ thêm thắt snhiều chức năng không giống nhằm nâng cấp quy trình gói gọn hao hao tăng năng suất cho tới căn nhà cách tân và phát triển. Đối với những dự án công trình rộng lớn, việc có không ít module phía bên trong dựa vào cho nhau là rất là phổ cập. Khi dùng Maven, quy trình build ra mắt lâu bởi quy trình clean toàn cỗ những artifact và tiếp sau đó là quy trình gói gọn lại từ trên đầu, đôi khi thời hạn chạy những đoạn Unit Test cũng tiêu hao tương đối nhiều thời hạn. Đối với Gradle, bởi một task build (một đơn vị chức năng logic của một quy trình build) đều được khái niệm input và output, nên lúc với sự thay cho thay đổi nhỏ vô source code, Gradle tiếp tục chỉ triển khai build lại một trong những phần quan trọng. điều đặc biệt, Gradle tiếp tục tự động lần tìm tòi những task không giống phụ thuộc task này và triển khai quy trình build lại. Như vậy, vận tốc build của Gradle sẽ tiến hành tinh giảm. Hơn thế nữa, Gradle được chấp nhận chạy parallel những đoạn code test nhờ bại liệt tinh giảm thời hạn của quy trình build. Trong sau này, Gradle được chấp nhận triển khai việc phân phối những đoạn code test trải qua không ít machine không giống nhau nhằm cắt giảm thời hạn mong chờ. Đồng thời khắc khác lạ rộng lớn đối với Maven là chứ không ngừng quy trình build ngay lúc gặp gỡ lỗi, Gradle tiếp tục thực thi đua không còn toàn bộ những task rất có thể và tổ hợp toàn cỗ những lỗi gặp gỡ nên vô một đợt gói gọn. Nhà cách tân và phát triển sẽ không còn nên mong chờ vượt lên trước lâu nhằm build và gặp gỡ lỗi, sửa lỗi và build lại.
- Build cho tới nhiều ngôn từ.
- Gradle tương hỗ build cho tới nhiều ngôn từ xây dựng không giống nhau bao hàm Java, Scala, Python, C/C++, Android, iOS.
- Được kiến thiết nhằm điều khiển xe trên JVM, Gradle tương hỗ uy lực cho những dự án công trình ghi chép vì như thế Java và những ngôn từ JVM khác ví như Scala, Groovy,... với việc tương hỗ nhiều loại phần mềm và khí cụ cách tân và phát triển chính yếu như test frameworks (JUnit, TestNG, Spock), application frameworks (Java EE, Grails, Play!), embedded trang web servers (Jetty) and code analysis cops (Checkstyle, CodeNarc, FindBugs, JDepend, PMD, JaCoCo, Sonar).
- Tích phù hợp với Android Studio tương hỗ quản lý và vận hành dependency, multi-project. Đồng thời tích ăn ý những test services phổ cập như AppThwack, TestDroid và Manymo. Trong khi, rất có thể tạo nên nhiều APK từ là 1 module và upload bọn chúng lên Google Play và những ứng dụng store không giống với những phiên phiên bản không giống nhau (free, paid,...)
- Hỗ trợ compiler, assembler và linker; được chấp nhận phân phối những tủ sách, tệp tin thực thi đua với rất nhiều loại (debug, release), platforms (x86, x86_64), phiên phiên bản (community, enterprise) không giống nhau. Tích ăn ý GCC, CLANG, XCODE, VISUAL C++ …
- Tích ăn ý công cụ: Từ những IDE (Integrated Development Environment) cho tới những CI (Continuous Integration) hoặc những khí cụ deploy, Gradle tích phù hợp với toàn bộ tất cả tuy nhiên bạn cũng có thể suy nghĩ cho tới. tham khảo: https://gradle.org/why/integrates-with-everything/
- Quản lý dependency mạnh mẽ:
- ví dụ đơn giản
repositories {
jcenter()
}
dependencies {
compile project(':core')
compile 'org.slf4j:slf4j-api:1.7.10'
runtime 'org.slf4j:slf4j-simple:1.7.10'
testCompile('junit:junit:4.12') {
exclude group: 'org.hamcrest'
}
testCompile 'org.mockito:mockito-core:1.0'
}
- Có thể nhận kể từ ngẫu nhiên repository nào là được nghe biết : kể từ public hoặc private cho tới local; xáo trộn và phối kết hợp những loại repository, Maven repositories, public (Maven Central, jCenter), third-party and in-house (Bintray, Artifactory), local Maven repository, Ivy repositories, Custom & legacy repositories
- Giải pháp dependency tối ưu
- Không lúc nào chuyển vận 1 artifact nhiều lần
- Cache
- Xác minh qua chuyện checksum
- Track xuất xứ dependency đáp ứng tính hợp thức và ngăn ngừa lỗi ...
3. So sánh với maven
- Maven:
- quá trình build ra mắt lâu bởi quy trình clean toàn cỗ những artifact và tiếp sau đó là quy trình gói gọn lại từ trên đầu.
- các đoạn Unit Test cũng tiêu hao tương đối nhiều thời hạn.
- dừng quy trình build ngay lúc gặp gỡ lỗi
- Gradle
- một task build đều được khái niệm input và output, nên lúc với sự thay cho thay đổi nhỏ vô source code, Gradle tiếp tục chỉ triển khai build lại một trong những phần cần thiết thiết
- Gradle tiếp tục tự động lần tìm tòi những task không giống phụ thuộc task này và triển khai quy trình build lại
- Gradle được chấp nhận chạy parallel những đoạn code test nhờ bại liệt tinh giảm thời hạn của quy trình build
- Ngoài đi ra Gradle được chấp nhận triển khai việc phân phối những đoạn code test trải qua không ít machine không giống nhau nhằm cắt giảm thời hạn mong chờ.
- thực thi đua không còn toàn bộ những task rất có thể.
- tổng ăn ý toàn cỗ những lỗi gặp gỡ nên vô một đợt gói gọn.
4. Tạo Build Script đơn giản
configurations {
sshAntTask
}
dependencies {
sshAntTask 'org.apache.ant:ant-jsch:1.9.2'
}
# Task Tạo tệp tin jar
jar {
baseName 'fileTest'
doFirst {
zip64 = true
}
exclude 'META-INF/*.RSA', 'META-INF/*SF', 'META-INF/*.DSA'
# Main class
manifest {
attributes 'Main-Class' : fileTest
}
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 scpJar() {
doLast {
file: file("fileCopy"),
trust: true,
todir: 'user@server_ip:/home/'
password: '123456'
}
}
All rights reserved
Bình luận