2015-02-25 19 views
9

numaralı bir .codelet, .codelet, .codelet.and.out, etcetera adı verilen adlarla bir custom taglet library yazdım. JDK ile derlenmiştir.JDK 1.7, bir nokta ile * başlayan * özel etiketlere izin verir. JDK 1.8 bunu yasakladı mı?

1.7Değitmekkullanarak JavaDoc oluştururken, iyi çalışıyor.

C:\...\Temp.java:5: error: unknown tag: codelet 
* {@codelet mypkg.Temp} 
Note: Custom tags that were not seen: @.codelet 
1 error 

adını değiştirme: JDK 8 ile oluşturulurken

C:\...\Temp.java:5: error: no tag name after @ 
* {@.codelet mypkg.Temp}` 

Ben {@codelet mypkg.Temp} için taglet (değil taglet kodunun kendisi) kullanarak kodu değiştirirseniz çünkü Ama, bu başarısız taglet kaynak kodu cod.elet (code.let iyi değil çünkü code zaten varolan bir etiket adıdır) ve bu yeni adı kullanarak çalışır.

(bölümünün alt kısmına doğru) -tag option için javadoc aracı belgelerine bildiren:

çatışmaları önleme: Kendi ad oluşturmak istiyorsanız, o zaman bir nokta ile ayrılmış bir adlandırma kuralı kullanabilirsiniz paketler için kullanılana benzer: com.mycompany.todo. Oracle, adları nokta içermeyen standart etiketler oluşturmaya devam edecektir. Oluşturduğunuz herhangi bir etiket, bir etiketin davranışını Oracle tarafından tanımlanan aynı adla geçersiz kılar. Bir @todo etiketi veya etiket oluşturursanız, Oracle, daha sonra aynı adla standart bir etiket oluşturduğunda bile tanımladığınız davranışa her zaman sahiptir.

Burada bir şey eksik miyim? Ya da bu sadece gerçekten berbat olan belgesiz bir değişiklik? Çünkü bu benim kütüphanemde oldukça büyük bir değişiklik gerektiriyor, durum buysa.

Bilginize: Taglet overview docs

+1

Muhtemelen bunun sadece belgelenmemiş bir değişiklik olduğunu söyleyebilirim. Varsayımın, genel olarak Java tanımlayıcılarının bir nokta ile başlamadığı varsayımıdır.Örneğin, paket adları, AFAIK, bir nokta ile başlayamaz. Muhtemelen önceki versiyonlarda buna izin verildiği bir hata. Taglet adınızı 'codelet' veya en kötü durum 'aliteralmind.codelet' olarak değiştiremez misiniz? – GreyBeardedGeek

+0

Dünya çapında binlerce java programcısı üzerinde binlerce kişinin kullandığı halka açık bir kütüphanedir (hayal edeyim). Geçerli ve eski haline getirilecek eski etiket adları, kullanımdan kaldırılmalı ve bunları değiştirmek için yeni adlandırılmış etiketler oluşturulmalıdır. Beyin avlamak değil ama çok zaman alıcı. Bu büyük bir acı. Gelecek Sun taglet'leriyle çatışmaları önlemek için kullanılan noktalara * * * önerilir, bu yüzden 'cod.elet' (shudder) ile gideceğim. – aliteralmind

+1

Alıntı yaptığınız şeye bağlı kalarak kaçınabildiğiniz büyük bir acı: “paketler için kullanılana benzer bir noktadan ayrılmış adlandırma kuralı kullanın”. Orada hiçbir şey, önde gelen noktaların çalışması gerektiği varsayımını desteklemez. Sonunda, neden isminizi neden bir nokta ile hazırladığınızı anlamıyorum. Ad alanları, yalnızca geliştiricilerin benzersiz ad alanlarını seçmeleri durumunda işe yarayan potansiyel belirsizlikleri çözmeyi amaçlıyordu, ancak benzersiz bir ad alanı seçmemeniz durumunda, bunları kullanmanız gerekmiyor… – Holger

cevap