Çok modüllü bir Maven projem var. Bu örnek için iki modülü düşünün:
data
consumer
Modül consumer
, data
bağımlılık olarak modüle sahiptir .
Modül data
, bir grup çekirdek sınıf bildirir. src/test
Bunların altında onları kullanan testler var . Bu testler bazı uzun soluklu nesne oluşturma gerektirir, bu yüzden bu nesneleri oluşturmak için içinde bazı yardımcı yöntemlerin bulunduğu bir sınıfım var. Bu yardımcı program sınıfı ( SampleDataHelper
) src/test
hiyerarşi içindedir.
Ayrıca consumer
modülde bu uzun soluklu nesnelerden bazılarını yaratmam gereken bazı testlerim var . Ağacımda bulunan testlerde SampleDataHelper
sınıfımı (içinde tanımlanan data src/test
) kullanmak istiyorum consumer src/test
. Ne yazık ki, olsa bile data
bir bağımlılık olduğunu consumer
, consumer
altında var sınıfları göremiyorum data src/test
.
Bununla mücadele etmek için başka bir modül ( data-test
) oluşturup SampleDataHelper
altına taşıyabileceğimi düşündüm src/main
. Sonra yer alacağını data-test
bir şekilde test kapsamı içinde bağımlılık data
. Ne yazık ki, bu döngüsel bir bağımlılık getiriyor: data
kullanımlar data-test
, ancak data-test
aynı zamanda gerektirir data
.
Ben ile geldim tek çözüm yerine etmektir SampleDataHelper
altında data src/main
bir alt test
paketi ve hiçbir gerçek uygulama kodu Hiç çağırır umut.
Nasıl paylaşabilir SampleDataHelper
modülleri arasında sınıf olmadan altına aldıktan sonra src/main
?
data
) Hatta benim ikinci modülü derlemek için önce ( consumer
).
mvn package
, ancak kullandığınızda tek adımlı yapı sadece para cezası çalışmalıdır mvn install
veya mvn deploy
. Sadece hızlı bir not. Büyük projelerimizden birinde junit'in üzerine bir paketleyicimiz var TestBase
ve bu src/main
benim de iyi bir fikir olmadığını düşündüğüm bir yerde bulunuyor.