我有一個項目結構,在那裏我有一些基本的項目,所有的功能都實現,最重要的是對不同種類的使用/部署的一些項目如下:如何依靠WebApplicationInitializer項目?
- 富核
- foo-production,取決於foo-core(生成戰爭文件並且交付給客戶)
- foo-standalone,取決於foo-core(產生用於內部測試的戰爭)
- foo-ui-test,取決於foo-core(用Arquillian + Selenium進行UI測試)
現在我有越來越多的是foo的,獨立的和富的UI測試有用的類,但我不希望這些類部署到客戶。因此,foo-core作爲一個可能的項目存放在這些類中。剩下的兩個選項是:
- 一個新項目富輔助依賴於foo的核心,使FOO,獨立和Foo-UI測試依賴於foo-幫手,而不是foo的核心。
- 製作富的UI測試依賴於foo-獨立
我想去選項2,因爲我已經有很多的項目。選項2剩下的問題是,這兩個項目(富-獨立和Foo-UI-test)中有一個春天WebApplicationInitializer ... 現在我用我的編譯系統撥弄左右(我的gradle使用),並能排除Web獨立項目中的WebApplicationInitializer,並且僅在構建foo-standalone.war文件時明確包含它。
foo-standalone生成的build.gradle文件似乎是「hackish」,如果我重命名或移動WebApplicationInitializer類,它將會中斷。我想知道,如果有另一種方法來實現我正在尋找的東西,或者如果我不得不做一個新的項目。
更新 從我的src/main/java下爲src /初始化/ Java的移動WebApplicationInitializer類和改變FOO,獨立的的build.gradle如下:
sourceSets {
init {
java {
compileClasspath += sourceSets.main.runtimeClasspath
}
}
}
war {
classpath sourceSets.init.runtimeClasspath
}
我想這是最短的,自定義的方式來做到這一點,或者是否有任何內置的gradle功能來做到這一點?
感謝您的回答,但我使用gradle而不是Maven。我想避免創建foo-helper項目... – schauk11erd