2012-05-17 15 views
10

Kodumuzu biraz daha güzel hale getirmek için Lombok ek açıklamalarını test etmek ve tanıtmak için bazı (gerçekten basit) kodlar hazırladık. Maalesef, hem Maven üzerinden hem de testler IntelliJ yoluyla yürütüldüğünde, testlerde kırılıyor gibi görünüyor. karşılık gelen bir test ileLombok'un birim testlerinde çalışmasını sağlayamıyor gibi gözüküyor

package foo.bar; 

import lombok.Data; 

@Data 
public class Noddy { 

    private int id; 
    private String name; 

} 

:

Bizim alanı sınıfları

şuna benzer Biz Maven içinde aspectjrt bağımlılığı (yanı sıra IntelliJ ilgili eklentisi) sahip

package foo.bar; 

import org.junit.Test; 
import static org.junit.Assert.assertEquals; 

public class NoddyTest { 

    @Test 
    public void testLombokAnnotations(){ 
     Noddy noddy = new Noddy(); 
     noddy.setId(1); 
     noddy.setName("some name"); 
     assertEquals(noddy.getName(), "some name"); 
    } 
} 

ve AspectJ-maven-eklentisi.

<dependency> 
    <groupId>org.projectlombok</groupId> 
    <artifactId>lombok</artifactId> 
    <version>0.11.0</version> 
</dependency> 

aptal bir şey yapıyor ya belirgin bir şey eksik musunuz:

Biz JSDK 1.6.0_31, Lombok 0.11.0, Maven 2 tarzı ponlar ile koşuyoruz?

Bu işi yapabilmemiz harika olurdu, çünkü Lombok'u bir süredir üretimde kullanmak için bir gözüm varmış gibi.

Çok teşekkürler,

P.

(FWIW, IntelliJ 11.1.2 Lombok eklentisi 0.4 vardır ve bu proje için AKE kullanıyor görünüyor) sorunu gibi görünüyor

+0

Bu sorun için bir çözüm buldunuz mu? – anazimok

cevap

1

lombok tarafından üretilen kodun ajc tarafından üzerine yazıldığına ve Fabrizio Giudici'nin bulduğum bir blog girişine göre, Maven AspectJ eklentisindeki bir hatadan dolayı gerekli argümanları ajc'e aktarmanızı engelleyen bir "temiz" Maven çözümü yoktur.

http://weblogs.java.net/blog/fabriziogiudici/archive/2011/07/19/making-lombok-aspectj-and-maven-co-exist Aslında this benim için çalıştı ve bu tartışmalı bir temizleyici çözüm:

Burada geçici bir çözüm önermektedir. Ek bir örgü dizini ile test sınıfları için bir yürütme aşaması eklemeniz gerekebilir.

0

Maalesef, ikinci çözümü test ettim - mentioned by mhvelplund - ama benim için çalışmadı. Çözüm, AspectJ maven eklentisini pom.xml'den tamamen kaldırmaktı!

+0

Lütfen, cevabınızın içine bir URL dahil etmek için kısa bağlantı servisini kullanmayın. – j0k

+0

Tamam, sadece mhvelplund tarafından sağlanan bağlantıyı kopyaladı/yapıştırdığını bilmiyordum. – maxxyme

+0

Oh haklısın. – j0k

İlgili konular