Dự án gradle của tôi sử dụng application
plugin để tạo tệp jar. Là một phần của phụ thuộc bắc cầu thời gian chạy, tôi kết thúc việc kéo vào org.slf4j:slf4j-log4j12
. (Nó được tham chiếu như một phụ thuộc bắc cầu phụ trong ít nhất 5 hoặc 6 phụ thuộc bắc cầu khác - dự án này đang sử dụng spring và hadoop, vì vậy mọi thứ ngoại trừ bồn rửa nhà bếp đang được kéo vào ... không chờ đợi ... đó cũng vậy :) ).
Tôi muốn loại trừ slf4j-log4j12
bình trên toàn cầu khỏi bình đã xây dựng của mình. Vì vậy, tôi đã thử điều này:
configurations {
runtime.exclude group: "org.slf4j", name: "slf4j-log4j12"
}
Tuy nhiên, điều này dường như loại trừ tất cả các org.slf4j
hiện vật bao gồm slf4j-api
. Khi chạy ở chế độ gỡ lỗi, tôi thấy các dòng như:
org.slf4j#slf4j-api is excluded from com.pivotal.gfxd:gfxd-demo-mapreduce:1.0(runtime).
org.slf4j#slf4j-simple is excluded from com.pivotal.gfxd:gfxd-demo-mapreduce:1.0(runtime).
org.slf4j#slf4j-log4j12 is excluded from org.apache.hadoop:hadoop-common:2.2.0(runtime).
Tôi không muốn phải tra cứu nguồn của từng slf4j-log4j12
phụ thuộc bắc cầu và sau đó có các compile foo { exclude slf4j... }
câu lệnh riêng lẻ trong dependencies
khối của mình .
Cập nhật:
Tôi cũng đã thử điều này:
configurations {
runtime.exclude name: "slf4j-log4j12"
}
Cuối cùng thì loại trừ mọi thứ khỏi bản dựng! Như thể tôi đã chỉ định group: "*"
.
Cập nhật 2:
Tôi đang sử dụng phiên bản Gradle 1.10 cho việc này.