Tôi đang rách tóc ra. Tôi đã xóa các kịch bản của mình ngay lập tức trở lại mã được cung cấp trong các trang hướng dẫn Gradle như tôi nghĩ rằng tôi đang làm điều gì đó về cơ bản sai hoặc đã hiểu lầm cách một ứng dụng đa dự án được cho là được cấu trúc bằng cách sử dụng gradle.Xây dựng dự án đa java bằng Gradle
Tôi có ba dự án java trong nhật thực, với cả ba dự án có chứa tập lệnh build.gradle và chỉ có một dự án chứa tập lệnh settings.gradle. Cấu trúc như sau:
Scripts
-- build.gradle
-- settings.gradle
Database
-- build.gradle
Services
-- build.gradle
Tôi đang cố gắng để xây dựng 'Database' và dự án 'Dịch vụ' bằng cách sử dụng kịch bản xây dựng trong dự án 'Scripts'. Để tạo cây dự án, tôi có đoạn mã sau vào settings.gradle:
include 'Services', 'Database'
project (':Services').projectDir = new File(settingsDir, "../Services")
project (':Database').projectDir = new File(settingsDir, "../Database")
Sao chép mã trong hướng dẫn đa dự án (tài liệu gradle), tôi đang cố gắng để có được mỗi việc xây dựng kịch bản để in ra một số văn bản, để đảm bảo mọi thứ được thiết lập chính xác. Mục tiêu cuối cùng của tôi là có các phụ thuộc được xây dựng một cách chính xác khi 'eclipseClasspath' được thực thi, sao cho tất cả các dự án biên dịch chính xác trong nhật thực. Tuy nhiên, văn bản không được in ra như tôi mong đợi!
Dưới đây là những gì được chứa trong ba xây dựng kịch bản:
Scripts build.gradle
allprojects {
task hello << { task -> println "I'm $task.project.name" }
}
subprojects {
hello << {println "- I depend on Scripts"}
}
Cơ sở dữ liệu build.gradle
hello.doLast {
println "- I'm inside database"
}
Dịch vụ build.gradle
hello.doLast {
println "- I'm inside services"
}
Trong dự án 'Scripts', khi tôi chạy 'gradle -q hello', tôi nhận được kết quả như sau:
I'm Scripts
I'm AnprDatabase
- I depend on Scripts
I'm Database
- I depend on Scripts
Tại sao là nội dung '- Tôi bên trong cơ sở dữ liệu' và '-I'm bên trong dịch vụ 'không xuất hiện? Tôi hơi bối rối bởi nó. Tôi chỉ có thể phỏng đoán nó có cái gì đó để làm với cấu trúc dự án của tôi. Ai đó có thể xác nhận đây là trường hợp? Nếu không, vấn đề là gì? Như đã đề cập, tôi đã xóa các kịch bản của mình trở lại ví dụ đơn giản này, vì tôi không thể lấy các phụ thuộc để chạy trong mỗi dự án xây dựng kịch bản bằng cách sử dụng cùng một cấu trúc.
Rất cảm kích mọi trợ giúp được cung cấp.
Làm việc tốt cho tôi, 'gradle-1.0-milestone-3' – axtavt
Tôi đang sử dụng cùng một phiên bản của gradle. Ứng dụng của bạn có bao gồm các dự án java có cùng cấu trúc với tôi không? – ScreamingMage
Một câu hỏi khác cho bạn axtavt, là kịch bản xây dựng của bạn đang được chạy từ bên trong dự án 'Kịch bản' tương đương của bạn hay là nó ở gốc của ba dự án? Tôi muốn thử và chạy thử nghiệm của tôi từ bên trong dự án 'Scripts' – ScreamingMage