2015-01-05 30 views
15

Người ta có thể chạy gradlew dependencies để tìm hiểu về sự phụ thuộc của nhiệm vụ mô-đun. Có cách nào để tìm phụ thuộc transitive của phụ thuộc buildscript?Có nhiệm vụ "phụ thuộc" Gradle cho phụ thuộc buildScript không?

Ví dụ: classpath 'com.android.tools.build:gradle:1.0.0' phụ thuộc trực tiếp vào lúc:

com.android.tools.build builder 
com.android.tools.lint lint 
net.sf.proguard proguard-gradle 
tools.base project-test-lib 

Như có thể thấy trên MVNRepository. Nhưng hiện vật này có sự phụ thuộc của riêng họ. Có cách nào và cách nào để tìm ra chúng mà không cần phải di chuyển toàn bộ cây phụ thuộc theo cách thủ công?

Là một làm rõ, classpath Tôi đang nói về được xác định bởi:

buildscript { 
    repositories {} 
    dependencies { .... } 
} 

Trả lời

-1

Bạn có thể sử dụng lệnh này:

gradle dependencyInsight --dependency gradle 

Có hướng dẫn tuyệt vời của Udacity, Gradle for Android, nhưng bạn có thể xem this video để được giải thích thêm.

+0

Không thể tạo báo cáo cái nhìn sâu sắc phụ thuộc vì cấu hình đầu vào không được chỉ định. ", Đã thử thêm' --configuration classpath', nhưng nó vẫn cho tôi lỗi tương tự. Cũng đã thử 'biên dịch' và' thời gian chạy 'để không có kết quả. Bất kỳ ý tưởng? (Gradle 3.5) – TWiStErRob

+1

Câu trả lời này không chính xác. Đầu tiên, như chú thích ở trên đề cập đến, nhiệm vụ 'dependencyInsight' yêu cầu một tên cấu hình được cung cấp thông qua tùy chọn' --configuration'. Thứ hai, chỉ cấu hình dự án, không phải cấu hình bản dựng, được tiếp xúc với tác vụ này. –

1

Tôi nghĩ rằng bạn đang tìm kiếm Gradle's DependencyInsightReportTask

+0

Bạn có thể đưa ra ví dụ về cách sử dụng nó để nhận báo cáo về phụ thuộc buildscript không? – atok

+0

Chỉ cần thêm nhiệm vụ: nhiệm vụ allDepInsight (loại: DependencyInsightReportTask) << {} Sau đó chạy gradle allDepInsight – Mark

+0

Nó dẫn đến lỗi sau: Thực thi không thành công cho nhiệm vụ ': SdkTestApp: allDepInsight'. > Không thể tạo báo cáo chi tiết về phụ thuộc vì cấu hình đầu vào không được chỉ định. Nó có thể được chỉ định từ dòng lệnh, ví dụ: ': SdkTestApp: allDepInsight --configuration someConf --dependency someDep' – atok

27

Đáng tiếc là không có cách nào để xác định cấu hình để xây dựng kịch bản nhiệm vụ ngầm định dependencies qua CLI. Bạn sẽ phải xác định rõ ràng một tác vụ thuộc loại DependencyReportTask được định cấu hình với cấu hình tập lệnh xây dựng của bạn.

task buildscriptDependencies(type: DependencyReportTask) { 
    configurations = [buildscript.configurations.classpath] 
} 

Cập nhật:

Bắt đầu với Gradle 2.10 bây giờ bạn có thể nhận được thông tin về sự phụ thuộc buildscript qua

gradle buildEnvironment 
+0

Thật không may, 'gradle buildEnvironment' dường như không xuất được gì cho các plugin lõi. Ví dụ cho 'áp dụng plugin: 'application'' để phụ thuộc được hiển thị, mặc dù plugin' application' phụ thuộc vào plugin 'java'. – sschuberth

+0

@sschuberth nếu bạn chỉ đơn giản là những gì để biết những gì tất cả các plugin được sử dụng bởi một xây dựng tôi muốn đề nghị điều tra [xây dựng quét] (https://scans.gradle.com/s/pqarplj4ogagg/plugins). Ví dụ: https://scans.gradle.com/s/pqarplj4ogagg/plugins. –

+0

Với tính năng quét bản dựng là dịch vụ dựa trên đám mây công cộng, điều đó sẽ chỉ hoạt động nếu tôi tốt với việc tiết lộ chi tiết về mã nguồn/hệ thống xây dựng của tôi khi mở, đôi khi tôi không.Tôi biết về phiên bản tại chỗ với Gradle Enterprise, nhưng tôi thực sự thích thứ gì đó hoạt động "ngoại tuyến" và tạo báo cáo trên đĩa cục bộ của tôi. – sschuberth

Các vấn đề liên quan