Çok modüllü bir Maven projem var. Bu örnek için iki modülü düşünün:
dataconsumer
Modül consumer, databağımlılık olarak modüle sahiptir .
Modül data, bir grup çekirdek sınıf bildirir. src/testBunları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/testhiyerarşi içindedir.
Ayrıca consumermodülde bu uzun soluklu nesnelerden bazılarını yaratmam gereken bazı testlerim var . Ağacımda bulunan testlerde SampleDataHelpersınıfımı (içinde tanımlanan data src/test) kullanmak istiyorum consumer src/test. Ne yazık ki, olsa bile databir bağımlılık olduğunu consumer, consumeraltı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 SampleDataHelperaltına taşıyabileceğimi düşündüm src/main. Sonra yer alacağını data-testbir şekilde test kapsamı içinde bağımlılık data. Ne yazık ki, bu döngüsel bir bağımlılık getiriyor: datakullanımlar data-test, ancak data-testaynı zamanda gerektirir data.
Ben ile geldim tek çözüm yerine etmektir SampleDataHelperaltında data src/mainbir alt testpaketi ve hiçbir gerçek uygulama kodu Hiç çağırır umut.
Nasıl paylaşabilir SampleDataHelpermodü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 installveya mvn deploy. Sadece hızlı bir not. Büyük projelerimizden birinde junit'in üzerine bir paketleyicimiz var TestBaseve bu src/mainbenim de iyi bir fikir olmadığını düşündüğüm bir yerde bulunuyor.