Bir Sürekli şöyle tanımlanır var. Denetleyicide implements NullCheckTrait
varsa, iyi çalışıyor. @Enhances
'un sadece bir not eklentisi oluşturup özelliği oraya koyduğumda çalışacağını okudum. Bu bilinen bir sorun olup olmadığını merak ediyorum ve @Enhances
almak için denetleyici olarak aynı grails uygulamadan çalışmak için bir yol varsa.@Enhances Grails Kontrolör
cevap
@Enhances
sınıfları derlemeden önce sınıf yolunda olması gerektiğinden, bunu aşmanın yolu yoktur. Örneğin, kontrol cihazınızın sınıfının önce ve daha sonra sizin özellikli olarak derlendiğini söyleyin, bu durumda özellik uygulanmayacaktır ve derleme sırasını kontrol etmenin bir yolu olmadığı için bu bir sorun olmaya devam edecektir.
bu aynı projede yapılabilir diğer tek yolu kurulumu Gradle belirlenen ek bir kaynak olduğunu, bkz:
bir özel oluşturmak gerekmez tane daha çözüm var ek kaynak kümesi.
grails gradle plugin, varsayılan olarak herhangi bir ana kaynak kümesinden derlenmiş olan ast adlı bir kaynak kümesiyle gelir. Böylelikle Trait'ınızı ast kaynaklarına koyabilirsiniz ve aynı eklenti/projede bile eserlere uygulanacak.
İşte proje yapısı
src
+
+--+ast
+
+--+groovy
+
+--+MyAwsomeTrait.groovy
nasıl olması gerektiğini Ve bu senin sourceset almak ve uygulayacaktır src/ana sourceset ve grails sınıflara önce derlenmiş alacak.
güncelleştirmesi: Grails, ast kaynaklarını yalnızca eklenti projeleri için değil, uygulama için yapılandırır. Burada,
'un altında görün. Güncelleme: Yukarıdaki çözüm, yalnızca uygulama projeleri için değil, eklenti projeleri için de geçerlidir. sorun https://github.com/grails/grails-core/issues/10717 –
Teşekkürler Graeme için bir AST sourceset oluşturma hakkında bir blog girişi yazdım. Bu tamamen mantıklı. Ve bağlantı için teşekkürler. – Gregg
@Graeme Rocher hala geçerli mi? zaten AST için ekstra eklentiye ihtiyaç duymadan, aynı projede bile src/ast eserleri altında bir ast kaynak kümesi ve dönüşümler koyuyorum, cevabımı –