2016-03-25 11 views
1

Sınıflandırma projemde kullandığım tüm bağımlılıkların Java çalışma zamanı uyumluluğunu bilmem gerekiyor (her projenin "sourceCompatibility" ayarını kontrol edecek şekilde kontrol ediyormuş gibi), her bir bağımlılık belgesini bulmaya çalışmaksızın eğer oradaysa. Bunu gradle ile yapmanın bir yolu var mı? Ya da başka bir otomatikleştirme aracı?Bir bağımlılık projesi ile tüm bağımlılıkların JDK uyumluluğunu ("sourceCompatibility" gibi) nasıl listeleyebilirim?

(Ben retrolambda ile Android için derlemeye çalışırken ve RoboVM sahip iOS ediyorum çünkü Özellikle ben, bağımlılıklar Akışları gibi Java 8 özelliklerini kullanıyor olabilir görmek için çalışıyorum.)

cevap

0

tür bilgiler muhtemelen değil Var, ve üretmek için çok can sıkıcıdır. Kaynak derlendikten sonra, derleyiciye kaynak sözdiziminin nasıl yorumlanacağını söylemek için

"sourceCompatibility" mevcut değil. İlgilendiğiniz şey, "targetCompatibility" veya sınıf dosya formatı ana sürümdür: Java 8, 52, Java 7, 51'dir.

Java'ya Java 8'in anlaması gerektiğini bildirir. ... sınıf formatı ve baytkodlarına sınıfında bulunan, bu nedenle hariç indir olabilir ve projenize her bağımlılık açmak ve onların tüm bağımlılıklarını ve sonra her sınıf dosyasının sürüm numarası bakmak

Sadece sınıf dosya formatı versiyonuna bakmak, sınıfın sadece JDK'nın belirli sürümlerinde mevcut olan metotlara ve alanlara referans verip vermediğini söylemez. Java 8 ile test edilmedim, ancak Java 7'de kaynak/hedef uyumluluğunu 1.6'ya ayarlamak ve yine de Java 7'de eklenen yeni yöntemlere başvurmak mümkün. Java 6 JVM dosyayı yükleyip çalıştıracak, ancak Aksi halde mükemmel görünmesine rağmen NoSuchMethodException. Bir bağımlılık o her sınıfın sürekli havuza geçmesi her sınıf ve yöntem başvuru bulmaktır için derlendi olandan Java farklı bir versiyonu ile tamamen uyumlu olup olmadığını


tek yolu gerçekçi, kontrol etmek ve daha sonra istenen JRE için geçerli olduklarını doğrulayın.

Bunun için otomatik bir araç isteyeceksiniz (JVM, Java sürümünün istediğiniz sürümüne sahipseniz ve birim testlerinizde% 100 kapsama sahipseniz bunu yapabilir ...), ancak bağımsız bir araç bilmiyorum Bu ne yapar ne de proje belgesi genellikle bu tür bilgileri içerir.

İlgili konular