Project,項目,也叫作工程。web
父子工程中,子模塊會自動繼承父工程的資源、依賴,但子模塊之間是獨立的,不能直接訪問彼此中的資源、類。apache
就是說咱們能夠把多個子模塊都要用的資源、依賴提出來,放到父工程中,注意微服務的每一個服務都是獨立的,不能這麼幹。tomcat
子模塊會繼承父工程的依賴,但並非全部繼承下來的依賴都有效、還能在子模塊中使用。mybatis
做用域是provided、test的依賴,繼承下來都是無效的,須要在子模塊的pom.xml中從新導入。maven
有時候咱們要使用本項目其它子模塊中的類,或者使用其它項目的某個模塊中的類。ide
常見的狀況是:把某個模塊打包爲jar,安裝到公司私服,供公司內部使用。微服務
不能直接使用其它子模塊中的類,須要先把要使用的子模塊打包爲jar,安裝到倉庫,而後在要用的子模塊的pom.xml中引入依賴。編碼
好比我要在service子模塊中使用dao子模塊:spa
(1)對dao子模塊中的install雙擊,打包爲jar,安裝到倉庫插件
(2)在service子模塊的pom.xml中導入依賴:
<dependency> <groupId>org.example</groupId> <artifactId>dao</artifactId> <version>1.0</version> </dependency>
對應dao模塊的公司|組織名、模塊名、版本號。
在父工程的pom.xml中添加tomcat插件
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <!--配置tomcat的端口號、將工程映射到哪一個路徑(域名後面的工程名)、uri編碼字符集--> <configuration> <port>8080</port> <path>/ssm</path> <uriEncoding>UTF-8</uriEncoding> </configuration> </plugin>
tomcat插件啓動方式一:
若是沒有出現tomcat7,刷新一下、從新導入。
tomcat插件啓動方式二:
無需在pom.xml中配置tomcat插件。
公司每每要在父工程的pom.xml中統一項目的jar包版本,但若是在子模塊的pom.xml中導入了同名、不一樣版本的jar包,會覆蓋父工程傳遞的同名依賴。
爲防止這種問題,須要在父工程的pom.xml中鎖定jar包版本。
<!--jar包鎖定--> <dependencyManagement> <dependencies> <dependency></dependency> <dependency></dependency> <dependency></dependency> </dependencies> </dependencyManagement> <!--依賴--> <dependencies> <dependency></dependency> <dependency></dependency> <dependency></dependency> </dependencies>
就是把<dependencies>拷貝一下放到<dependencyManagement>中。鎖定以後,若是子模塊中出現同名的依賴,以父工程傳遞的依賴(鎖定的依賴)爲準。
須要注意的是<dependencyManagement>只有鎖定jar包的功能,不會導入jar包。
<!--統一管理jar包版本--> <properties> <!--元素名即key,隨意取但儘可能見名知義,經過${key}來引用--> <mybatis.version>3.5.4</mybatis.version> </properties> <!--jar包鎖定--> <dependencyManagement> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> </dependencies> </dependencyManagement> <!--依賴--> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> </dependencies>
把版本都寫在<properties>中,使用${ }引用便可,這樣維護起來方便。