semcelik / validation-project

1 stars 0 forks source link

Enforcer Plugin - Custom Rule #5

Open semcelik opened 7 years ago

semcelik commented 7 years ago

Farklı bir projede custom rule oluşturdum, çalışıyor. ( https://github.com/semcelik/enforcer-example )

Bunu bu projede src/it/second-it konumuna eklemeyi düşündüm. Ama install pluginini çağırdığımda ana proje install phase'ine giriyor alt projeler girmiyor. Bu yüzden .m2 klasörümün altındaki repoya yüklenmiyorlar. Bu yüzden de second-it projesinin pom dosyasında build tag'inin altında enforcer pluginine dependency olarak enforcer-rule artifact'ini verdiğimde .m2 ye bakıyor ve bulamıyor (sanırım) bu yüzden de custom rule'um çalışmıyor.

biraz düşününce "repositories" tag i ile yapabileceğimi düşündüm ama proje içindeki bir klasörü nasıl ifade edeceğimi bulamadım ve second-it projesini install phase'ine sokamadığım için proje içindeki local repoya da yüklenmiyor.

src/it/second-it/pom.xml de yorum satırı olarak düzelttim hata veren yeri.

Birde first-it projesinin integration testi çok uzun sürüyor bunun sebebi ne olabilir?

semcelik commented 7 years ago

Custom Rule oluşturdum (https://github.com/semcelik/enforcer-example). Ama pom.xml olmayan sadece .properties uzantılı dosyaları olan projede custom rule'u kullanmayı bulamadım enforce goal'ü pom.xml dosyası istiyordu. Ama araştırırken şöyle bir şey buldum. Kendi oluşturduğum goal'lerde @Mojo annotation'ına requiresProject parametresini false olarak eklediğimde projeyi bir kere install edince diğer klasörlerde pom aramaksızın properties validation'ını yapabiliyor. Ama bu durumda komut satırında kısaltılmış syntax'ı değil groupId:artifactId:version:goal syntax'ı ile yazmak gerekiyor. Yanlış hatırlamıyorsam bu .m2/settings.xml'den düzenlenebiliyordu. Ama benden istediğiniz enforcer plugin'inine parametre vererek bu işlemi yapmak olduğu için daha fazla ilerlemedim.

Logging konusunda da Java Logging hakkında döküman okudum. Bitirdikten sonra da SLF4J Logging API'sini yükleyip kullanmaya başladım. Artık kodda System.out.println yok.