Tôi đang sử dụng Gradle để tạo bình chứa tệp xml trong META-INF
. Tệp này có một hàng nhưLàm thế nào để mở rộng tài sản tham khảo trong tài nguyên jar?
<property name="databasePlatform" value="${sqlDialect}" />
để cho phép các cơ sở dữ liệu SQL khác nhau cho các môi trường khác nhau. Tôi muốn nói với gradle để mở rộng ${sqlDialect}
từ các thuộc tính của dự án.
Tôi cố gắng này:
jar {
expand project.properties
}
nhưng nó không thành công với một GroovyRuntimeException
mà dường như với tôi như nhiệm vụ Jar nỗ lực để mở rộng tài sản trong .class
file là tốt. Vì vậy, sau đó tôi đã thử
jar {
from(sourceSets.main.resources) {
expand project.properties
}
}
mà không ném ngoại lệ trên, mà thay vào đó là kết quả tất cả các tài nguyên được sao chép hai lần - một lần với mở rộng tài sản và một lần không có. Tôi quản lý để làm việc xung quanh này với
jar {
eachFile {
if(it.relativePath.segments[0] in ['META-INF']) {
expand project.properties
}
}
}
mà làm những gì tôi muốn, vì trong trường hợp sử dụng của tôi, tôi chỉ cần mở rộng thuộc tính của tập tin trong thư mục META-INF
. Nhưng điều này cảm thấy như một hack khá xấu xí, là có một cách tốt hơn để làm điều này?
Không hiệu quả đối với tôi. Tôi đã làm khác nhau: 'processResources { filesĐối sánh (" **/application.properties ") { mở rộng (project.properties) }' } – gmaslowski
Có (xin lỗi). Tôi vừa sao chép mã từ dự án của tôi ... nơi tôi đã đặt tiền tố cho các biến của mình bằng 'project. *' E.g. ' '. –