maven

多maven項目的實例demo,展示了聚合、繼承、工程依賴、單元測試、多war聚合、cargo發佈等場景。

一、工程介紹 task-aggregator 是父工程,同時承擔聚合模塊和父模塊的作用,沒有實際代碼和資源文件

task-common 是基礎工程,裏面是公共的代碼

task-sla 是某一個業務子模塊,不包含web內容

task-sla-web 是某一個web子模塊

task-web-dist是最外圍的web工程,聚合多個web工程,形成最終的war包

依賴關係是:task-common《-task-sla《-task-sla-web《-task-web-disk

二、task-aggregator

(1)定義公共變量<properties><spring.version><struts2.version> <hibernate.version></properties>

(2)模型版本<modelVersion><groupId><artifactId><version><packaging>

(3)帶聚合模塊 <modules><module>../task-common

(4)配置部署的遠程倉庫 <distributionManagement><snapshotRepository><id><name><url>

(5)插件管理<pluginManagement>

(6)依賴管理<dependencyManagement>

三、task-common

在代碼內部用到了spring的註解

Java代碼

public abstract class GenericDao<T>implements IGenericDAO<T>{

private Class<T> entityClass;

public GenericDAO(Class<T> clazz){

this.entityClass = clazz;

}

@Autowired

private HibernateTmeplate hibernateTemplate;

}

這裏用到了@Autowired註解,所以最終形成的war包,必須在spring配置文件中聲明HibernateTemplate類型的bean,否則會報錯

四、task-web-disk 然後這個工程裏包含了web層的東西,包括Action類、jsp、圖片、struts2的配置文件等,這些東西放在web工程裏是最合適的

這裏需要注意2點:

1. 這個工程的packing類型是war,而不是jar。但是最終它不會獨立打出war包來,其src/main/webapp裏的所有文件,都會被最外圍的task-web-dist工程聚合成一個總的war。

2.這個工程的WEB-INF目錄下,沒有web.xml(有也沒用,最終會被覆蓋)。默認情況下,packing類型爲war的項目,如果沒有wen.xml,則構建會失敗,因此需要在pom裏做一個配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章