Tôi muốn tìm phụ thuộc không sử dụng trong dự án của tôi. Có một tính năng cho điều này trong Gradle, như trong Maven không?
Tôi muốn tìm phụ thuộc không sử dụng trong dự án của tôi. Có một tính năng cho điều này trong Gradle, như trong Maven không?
Câu trả lời:
Vào tháng 6 năm 2017 , họ đã phát hành
4.0.0 version
và đổi tên tên dự án gốc"gradle-lint-plugin"
thành"nebula-lint-plugin"
. Họ cũng đã thêm hỗ trợ Android cho sự phụ thuộc không sử dụng .
Vào tháng 5 năm 2016 Gradle đã triển khai plugin Gradle lint để tìm và loại bỏ sự phụ thuộc không mong muốn
Plugin Gradle Lint là một công cụ nói dối có thể cắm và cấu hình để xác định và báo cáo về các mẫu lạm dụng hoặc phản đối trong các tập lệnh Gradle và các tệp liên quan.
Plugin này có nhiều quy tắc khác nhau. Quy tắc phụ thuộc không sử dụng là một trong số đó. Nó có ba đặc điểm cụ thể.
Để áp dụng quy tắc, thêm:
gradleLint.rules += 'unused-dependency'
Chi tiết về Quy tắc phụ thuộc không sử dụng được đưa ra trong phần cuối cùng.
Để áp dụng plugin Gradle lint:
buildscript { repositories { jcenter() } }
plugins {
id 'nebula.lint' version '0.30.2'
}
Cách khác:
buildscript {
repositories { jcenter() }
dependencies {
classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
}
}
apply plugin: 'nebula.lint'
Xác định quy tắc nào bạn muốn chống lại:
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
Đối với bản dựng doanh nghiệp, chúng tôi khuyên bạn nên xác định quy tắc lint trong tập lệnh init.gradle hoặc trong tập lệnh Gradle được bao gồm thông qua Gradle áp dụng từ cơ chế.
Đối với các dự án đa mô hình, chúng tôi khuyên bạn nên áp dụng plugin trong một allprojects
khối:
allprojects {
apply plugin: 'nebula.lint'
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
}
Để áp dụng quy tắc, thêm:
gradleLint.rules += 'unused-dependency'
Quy tắc kiểm tra các nhị phân được biên dịch phát ra từ các bộ nguồn dự án của bạn để tìm các tham chiếu lớp và khớp các tham chiếu đó với các phụ thuộc mà bạn đã khai báo trong khối phụ thuộc của bạn .
Để biết thông tin của bạn, tôi muốn chia sẻ về các plugin trước đó
Nhưng phiên bản mới nhất 1.0.3 của nó được tạo ra vào ngày 23 tháng 12 năm 2014 . Sau đó không có bất kỳ cập nhật nào.
Lưu ý: Nhiều kỹ sư của chúng tôi đang bị nhầm lẫn về plugin này vì họ chỉ cập nhật số phiên bản, không có gì khác.
implementation
và api
), và thậm chí tồi tệ hơn, khuyên bạn thay đổi từ những cái mới để những người NỮA cũ (ví dụ: compile
, testCompile
, vv).
Tôi đã có rất nhiều may mắn khi sử dụng Plugin Phân tích phụ thuộc Gradle . Để bắt đầu với nó, hãy thêm hai điều sau vào tập lệnh xây dựng Gradle của bạn.
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
và
apply plugin: "dependencyAnalysis"
Một khi những cái đó được đặt ra, chạy gradle analyze
. Nếu có các phụ thuộc không được sử dụng, bạn sẽ gặp lỗi xây dựng hiển thị đầu ra tương tự như văn bản bên dưới, cộng với danh sách các phụ thuộc không được sử dụng (cả khai báo và bắc cầu). Lỗi xây dựng thực sự tiện dụng nếu bạn muốn thực thi rằng không nên có các phụ thuộc không được sử dụng thông qua một bản dựng CI.
:foo:analyze FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':foo:analyze'.
> The project has unused declared artifacts
Dự án được đề cập trong các câu trả lời trước đó dường như đã chết. Tôi sử dụng phân tích phụ thuộc gradle . Thiết lập rất đơn giản:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.0.3'
}
}
apply plugin: 'ca.cutterslade.analyze'
Sau đó làm:
$ gradle analyzeDependencies
Tôi mới tìm hiểu về cái này: https://plugins.gradle.org/plugin/com.autonomousapps.dependency-analysis
Từ vẻ bề ngoài, nó đang được phát triển tích cực, nhưng tôi chưa thử nghiệm nó.
Chỉnh sửa: Trên thực tế, nó khá tuyệt vời, nó cung cấp rất nhiều lời khuyên (ví dụ: có nên sử dụng api so với thực hiện không)
Lưu ý của biên tập viên: Câu trả lời này đã hết hạn. Xin vui lòng xem câu trả lời hàng đầu .
Bạn có thể thử plugin Gradle com.github.nullstress.dependency-phân tích
Xây dựng đoạn mã để sử dụng trong tất cả các phiên bản Gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
apply plugin: "com.github.nullstress.dependency-analysis"
Xây dựng đoạn mã cho cơ chế plugin mới, ươm tạo, được giới thiệu trong Lớp 2.1:
plugins {
id "com.github.nullstress.dependency-analysis" version "1.0.3"
}
Ngoài ra, có một chủ đề ( Có một Gradle tương đương với "mvn phụ thuộc: phân tích"? ) Trong diễn đàn Gradle về điều này.
Các dự án trên hầu hết các câu trả lời lịch sử đã chết, nhưng phân tích phụ thuộc cấp độ dường như vẫn còn tồn tại vào năm 2016-05-30.