2010-02-01 14 views
10

Bir savaş dosyası üreten Maven projesi için entegrasyon testleri kurmaya çalışıyorum. (Burada görüldüğü gibi http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin/.) Ancak savaş dosyası, savaşta gruplamak istemediğim, sınıf yolunda bir grup .properties dosyası gerektiriyor.Maven entegrasyonu testinde çalışan iskeleye classpath ekleme

İskelenin kullandığı sınıf yoluna bir klasör eklemek için bir yol (tercihen eklenti yapılandırması yoluyla) var mı?

Bunu araştırdım ve http://markmail.org/message/awtqrgxxttra3uxx buldum, ancak bu, söyleyebileceğim kadarıyla aslında hiç çalışmıyor. .properties dosyaları bulunamadı.

cevap

21

Bu (this thread alınan aşağıdaki örnek) webAppConfig yapılandırma öğesi kullanılarak mümkün olmalıdır: Yukarıdaki çözüm sizin için çalışmadığını bulursanız

<webAppConfig> 
    <contextPath>/nportal</contextPath> 
    <!-- All I want to do here is add in the /etc/jetty/classes for runtime files. For some reason I have to also add back in the /target/classes directory --> 
    <extraClasspath>${basedir}/target/classes/;${basedir}/etc/jetty/classes/</extraClasspath> 
</webAppConfig> 
+0

Başka bir şekilde daha marjinal yol, 'jetty-context.xml'' 'Set name = 'extraClasspath> ../ my/classes, ../my/jar'leri' jetty-context.xml 'işlevini kullanmaktır. /special.jar ', bkz. [extraClasspath() yöntemini kullanma] (https://wiki.eclipse.org/Jetty/Reference/Jetty_Classloading#Using_the_extraClasspath.28.29_method) –

16

, senin Jetty'e içine Test sınıf yolunda dahil düşünün yapılandırması.

<configuration> 
    <useTestClasspath>true</useTestClasspath> 
    ... 
</configuration> 

Bu o zaman sınama üzerinde sınıf kaynaklar/sınıfların her şekilde yerleştirmek ve onları üretim koduna sürünen olmadan İskele sunucusuna onları görünür olmasını sağlayacaktır.

+13

sürüm 7+ kullanıcıları bir yanıt aramaya gelirse , yeni seçenek adı '' dır. Daha fazlası http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin#Configuring_additional_parameters – uiron

5

Sen /src/test/resources altında ek yapılandırma dosyaları yerleştirmek ve here belirtildiği gibi eklenti yapılandırmasında bir özellik <useTestScope>true</useTestScope> ayarlayabilirsiniz:

useTestScope

true ise testClassesDirectory gelen sınıflar ve kapsam bağımlılıklarını "testi "İlk önce sınıf yoluna yerleştirilir. Varsayılan olarak bu yanlıştır.

+0

Oh, zaten aynı bağlantıyı içeren bir yorum var ... Cevap - daha fazla fark edilir – Innokenty

+0

Benim için işe yaramıyor Jetty bunu çıkarıyor: [INFO] --- jetty-maven-plugin: 9.3.7.v20160115: start (start-jetty) @ someapp - - [BİLGİ] Proje için Jetty'yi yapılandırma: Verizon CHC Zamanlayıcı Sunucusu [BİLGİ] webAppSourceDirectory ayarlanmamış. Src/main/webapp deniyor [INFO] Yeniden Yükleme Mekaniği: otomatik [BİLGİ] Sınıflar =/Kullanıcılar/mvmn/wrkdir/someapp/target/sınıflar 2016-03-01 15: 27: 55.704: INFO :: main: Logging initialized @ 4023ms [INFO] Bağlam yolu =/ [BİLGİ] Tmp dizini =/Kullanıcılar/mvmn/wrkdir/someapp/target/tmp [BİLGİ] Web varsayılanları = org/eclipse/jetty/webapp/webdefault.xml [ BİLGİ] Web geçersiz kılmalar = hiçbiri ... – mvmn

+1

Benim için işe yaramıyor. Düzenleme: sürüm> = 7.0.0 ile çalışır – adrianboimvaser

İlgili konular