Tôi có một thư viện sử dụng plugin thiên đường macro (được gọi là thư viện nhà cung cấp macro). Trong build.sbt
,Trình biên dịch SBT Plugin như phụ thuộc Transitive
addCompilerPlugin("org.scalamacros" % "paradise" % "2.0.0" cross CrossVersion.full)
để đạt được quyền truy cập vào các chú thích vĩ mô.
Khi thêm thư viện macro dưới dạng libraryDependency
vào một dự án riêng biệt (được gọi là dự án tiêu dùng macro), chú thích có mặt, nhưng việc triển khai macro không bao giờ được gọi. Thêm plugin trình biên dịch thiên đường macro vào dự án tiêu dùng macro libraryDependencies
giải quyết vấn đề.
Có thể bao gồm các plugin trình biên dịch dưới dạng phụ thuộc transitive không? Điều này sẽ miễn phí người tiêu dùng của thư viện macro từ việc thêm các plugin cần thiết.
Update # 1:
Các addCompilerPlugin
helper thêm phụ thuộc vào libraryDependencies
và thiết lập sự phụ thuộc với một configuration = Some("plugin->default(compile)")
trong thư viện vĩ mô cung cấp dịch vụ.
Thêm phụ thuộc vào paradise
phụ thuộc vào libraryDependencies
của thư viện nhà cung cấp macro làm cho tạo phẩm hiển thị trong dự án người tiêu dùng vĩ mô. Nó không thêm phụ thuộc như là một trình biên dịch plugin.
Cập nhật # 2:
Thiết autoCompilerPlugins := true
trong dự án vĩ mô tiêu dùng kết hợp với Update # 1 không giải quyết được vấn đề này.