Maven实验总结一:多模块部署与pom.xml配置的注意事项

1,父模块的<packaging>必须为pom

2,<packaging>的默认值为jar

3,父模块要在pom里添加如下配置,来“组织”子模块;<module>的值,是父模块pom的相对目录名

      注意:①父模块pom.xml的相对目录;②不是子模块的artifactId,而是子模块 的目录名

[html]  view plain  copy
  1. <modules>  
  2.     <module>kuai3</module>  
  3.     <module>kuai4</module>  
  4.     <module>kuai1</module>  
  5. </modules>  

4,多模块deploy的时候,根据子模块的相互依赖关系整理一个build顺序,然后依次build,独立模块之间根据配置顺序build

5,当使用<artifactId>tomcat7-maven-plugin</artifactId>  热部署maven多模块项目,如果仅仅在父pom中配置热部署插件,

     如果两个<module>都被打包成war,如果相互独立,则后加载的将会完全覆盖先加载的模块,如果有依赖关系,差异部

     分将被保留,公共部分只保留主依赖方

6,所以在多模块项目中,使用Tomcat热部署,war模块的pom都应该继承或者配置,热部署插件。而此时,父pom中的插件
      将会只作用于未配置插件的war模块,如果所有war模块都已配置,则父pom插件将失去作用

7,通过CMD中进入项目目录下,使用mvn  tomcat:redeploy 命令来部署项目,①初次部署可以使用 deploy命令,所以统一使用            redeploy  ②如果出现tomcat not to be found 部署异常,可以对应插件版本:mvn  tomcat7:redeploy 

8,插件配置<configuration> <path> 标签若设为<path>/ </path>,项目将会被部署到Tomcat\webaaps\ROOT下,并覆盖默认文件  

9,子模块pom通过如下配置,来“继承”父模块,其中如果子模块的groupId或version没有显式配置,则默认继承父模块的

[html]  view plain  copy
  1. <parent>  
  2.     <groupId>Test</groupId>  
  3.     <artifactId>parent</artifactId>  
  4.     <version>0.0.1-SNAPSHOT</version>  
  5. </parent>  
  6. <artifactId>kuai1</artifactId>  

10,<dependencies> <dependency> 、的默认引用类型为jar,可以通过<type>改变引用类型

11,子pom 会直接继承 父pom <properties /> 中声明的属性

12,父pom 中仅仅使用<dependencies> <dependency>依赖的包,会被 子pom 直接继承(不需要显式依赖)

13,父pom 中仅仅使用<plugins> <plugin>依赖的插件,会被 子pom 直接继承(不需要显式依赖)

14,父pom中可以使用<dependecyManagement>和<pluginManagement>来统一管理jar包和插件pugin,不会被 子pom 直接继               承。子pom如果希望继承该包或插件,则需要显式依赖,同时像 <version /> <url /> 等配置项可以不被显式写出,默认从父             pom继承

15,mvn 命令对应着maven项目生命周期,顺序为compile、test、package、install、depoly,执行其中任一周期,都会把前面周          期 统一执行,可以通过配置跳过,例如:mvn install -DskipTests

16,maven项目打包和发布:本地没有就去下载,下载放在本地的仓库,加载本地仓库jar 打包成war 。远程发布,是先提交                 commit 到本地,然后发布push到远程。

17,安全起见,项目修改后重新部署,建议增加clean周期,例如: maven clean  redeploy

18,依赖具有传递性,maven项目会自动加载间接引入的依赖,也因此会造成某些jar包冲突,可以通过修改<scope>和增加                   <exclusion>屏蔽间接依赖

19,<dependency /> 具有依赖传递性,而<plugin />不具有依赖传递性

20,本地的jar能够被发布到本地仓库,然后被本地项目依赖:

IDE工具发布。如 Myeclipse,

[plain]  view plain  copy
  1. Package Explorer ——> 右键 Import ——> Import Jar to Maven Repository 
  • mvn 命令行。

mvn install:install-file -Dfile=jar包的位置(参数一) 

-DgroupId=groupId(参数二) -DartifactId=artifactId(参数三) -Dversion=version(参数四) 

-Dpackaging=jar

  • 然后把生成的pom <dependency /> 复制到本地项目的pom中,此时本地项目便可以依赖导入到本地仓库中的jar

21,pom <dependency /> 基础配置项与jar包路径的对应关系:

[html]  view plain  copy

  1. <dependency>  
  2. <groupId>org.mortbay.jetty</groupId>  
  3. <artifactId>jetty.kkk-ppp</artifactId>  
  4. <version>cc1.6</version>  
  5. <type>jar</type><!-- 默认是jar -->  
  6. </dependency>
[plain]  view plain  copy
  1. file://.../localRepository/org/mortbay/jetty/jetty.kkk-ppp/cc1.6/jetty.kkk-ppp-cc1.6.jar

其中,<artifactId /> <version /> <type /> 共同组成 jar包名及部分路径:

/artifactId/version/artifactId-version.type。所以,由jar包分析pom依赖,建议倒序分解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值