Tôi có tập tin scala sau:Tại sao tôi cần jsr305 để sử dụng ổi trong scala?
object SGuavaTryout {
com.google.common.cache.CacheBuilder.newBuilder()
}
tôi biên dịch với ổi-11.0.2.jar trong classpath. scala 2.9.1 biên dịch của tôi (cả thực plugin và scalac đồng bằng) than phiền:
error while loading CacheBuilder, Missing dependency
'class javax.annotation.CheckReturnValue', required by
D:\devel\eclipse-workspace\Scala Spielwiese\guava-11.0.2.jar
(com/google/common/cache/CacheBuilder.class)
Để biên dịch, tôi cần phải thêm JSR305 (jsr305-1.3.9.jar) để build path. Việc biên dịch tương đương java chỉ tốt mà không cần jsr305:
public class JGuavaTryout {
public void tryout() {
com.google.common.cache.CacheBuilder.newBuilder();
}
}
Bất kỳ ý tưởng nào tại sao scala yêu cầu jsr305? Có thực hiện jsr305 chính thức để sử dụng với ổi không?
Cảm ơn! - Georg
Trình biên dịch Java đặc biệt không quan tâm đến các loại chú thích, nhưng tôi nghĩ rằng tất cả các loại khác cần phải có sẵn. –
Scala 2.11.1 trở lên bây giờ xử lý các chú thích còn thiếu một cách duyên dáng; bạn không còn cần jsr305 trên classpath nữa. – retronym