2011-11-03 18 views
5

Aslında bazı kaynakları üreten out maven eklentisi için m2e konektörü geliştiriyorum. Kaynak klasör olarak çalışma alanına oluşturulmuş kaynakları (klasör) eklemem gerekiyor.Programlı olarak Eclipse eklentisi kaynak klasörünü ekleyin

Ben düzenlemek .classpath dosyası için JavaCore kullandı:

IJavaProject javaProject = JavaCore.create(proj); 
    IClasspathEntry[] entries = javaProject.getRawClasspath(); 

    IClasspathEntry[] newEntries = new IClasspathEntry[entries.length + 1]; 
    System.arraycopy(entries, 0, newEntries, 0, entries.length); 

    Path myPath = new Path("target/generated-sources"); 
    IClasspathEntry myEntry = JavaCore.newSourceEntry(myPath); 

    newEntries[entries.length] = JavaCore.newSourceEntry(myEntry.getPath()); 
    javaProject.setRawClasspath(newEntries, null); 

Ama bu kod diyor çalışmaz: Ben kullanmaya çalıştı Eğer IClasspathEntry için Yol

mutlak olmalıdır mutlak yol, .classpath için yazılmıştır, ancak tutulmada kaynak klasör olarak gösterilmemiştir.

Herhangi bir öneriniz var mı? Kolay bir iş olmalı ama nasıl çözeceğimi anlayamıyorum.

cevap

5

... beklediğimden daha sonra kolay oldu ...

IJavaProject javaProject = JavaCore.create(proj); 
IClasspathEntry[] entries = javaProject.getRawClasspath(); 

IClasspathEntry[] newEntries = new IClasspathEntry[entries.length + 1]; 
System.arraycopy(entries, 0, newEntries, 0, entries.length); 

IPath srcPath= javaProject.getPath().append("target/generated-sources"); 
IClasspathEntry srcEntry= JavaCore.newSourceEntry(srcPath, null); 

newEntries[entries.length] = JavaCore.newSourceEntry(srcEntry.getPath()); 
javaProject.setRawClasspath(newEntries, null); 

Ve bu .classpath için dosyasını kaynak girişini katacak:

+0

olmalıdır. Teşekkür ederim bayım! Şu an bunu denememekle birlikte, bu bilgiyi yarın da kullanabilirim. Sorunla ilgili olarak zayıf belgeler göz önüne alındığında bana çok büyük bir baş ağrısı kurtarabilirdin. – Vectovox

0

JavaCore.newProjectEntry(...) yerine JavaCore.newSourceEntry(...) yöntemlerinden birini deneyin. Sorun çözüldü

+0

benim hatam ... Ben kötü yazdım kodu. JavaCore.newProjectEntry (...) denedim ve özel durum vardı: IClasspathEntry yolu mutlak –

İlgili konular