maven简记

构建相关命令

需要在pom.xml所在目录执行

  • mvn clean 清理
  • mvn compile 编译主程序
  • mvn test-compile 编译测试程序
  • mvn test 执行测试
  • mvn package 打包
  • mvn install 项目安装到仓库
  • mvn site 生成站点
  • mvn deploy 自动发布(需要单独的配置)
坐标(定位项目)
  • groupid: 一般是公司域名倒叙+项目名称
  • artifactid: 模块名
  • version: 版本
仓库
  • 本地仓库:当前电脑上仓库目录,为本地所有maven工程服务
  • 远程仓库
    • 私服(Nexus): 搭建在局域网中,为局域网所有maven工程服务。可以将中央仓库中的项目下载下来并保存下来
    • 中央仓库:为所有maven工程服务
    仓库中的内容
    • maven自身需要的插件
    • 第三方框架或工具的jar包
    • 自己开发的maven工程
生命周期
  • 特点:每个生命周期都是从最开始开始执行,执行到相应命令结尾处
  • default lifeCircle(大致流程顺序)
    • 处理资源文件
    • compile
    • test
    • package
    • install
    • deploy
  • clean lifeCircle
    • pre-clean: 执行在清理前完成的工作
    • clean: 移除上一次构建生成的文件
    • post-clean: 执行一些需要在clean之后立刻完成的工作
  • site lifeCircle:
    • pre-site: 执行在生成站点文档之前的工作
    • clean: 生成项目的站点文档
    • post-site: 执行一些需要在生成站点文档之后完成的工作,为部署做准备
    • site-deploy: 将生成的站点文档部署到特定的服务器上
设置默认jdk版本

进入maven/conf/目录,修改settings.xml文件的<profile>标签

<profile>
	<id>jdk-1.8</id>
	<activation>
		<activeByDefault>true</activeByDefault>
		<jdk>1.8</jdk>
	</activation>
	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	</properties>
</profile>
依赖
  • 对自己的maven工程执行mvn install,将项目放入本地仓库中

    依赖范围(scope)
    • compile(默认)
      • 对主程序是否有效: YES
      • 对测试程序是否有效: YES
      • 是否参与打包: YES
      • 部署时是否有效: YES
    • test: 对测试程序有效
      • 对主程序是否有效: NO
      • 对测试程序是否有效: YES
      • 是否参与打包: NO
      • 部署时是否有效: YES
      • 例子:junit
    • provided(web工程使用的多):
      • 对主程序是否有效: YES
      • 对测试程序是否有效: YES
      • 开发时是否有效: YES
      • 部署时是否有效: NO
      • 运行时是否有效: NO
      • 例子:servlet-api.jar、jsp-api.jar

    tips:如果在jsp翻译过来的java代码中报空指针异常,可能是jsp-api.jar的依赖范围问题。由compile修改为provided即可。

    依赖的传递性
    • 只有compile范围的依赖可以传递
    • jar包版本冲突时,maven默认使用依赖路径最短的版本
    • 依赖路径相同时,maven采用先申明优先原则。(dependency书写的顺序)
    依赖的排除

    tips: 对当前项目和依赖此项目的项目生效

    •  <exclusions>
           	<exclusion>
           		<groupId><groupId>
           		<artifactId></artifactId>
           	</exclusion>
        </exclusions>
      
继承

父工程中统一指定依赖的版本,子工程中不指定此依赖的版本,就会自动使用父工程的版本。
tips: 配置继承关系后,执行安装命令时要先安装父工程

  • 操作步骤:
    • 创建一个maven工程。打包方式为pom => <packaging>pom<packaging>
    • 子工程中声明对父工程的引用(<project节点下>)
      •   <!--子工程中声明父工程-->
          <parent>
          	<groupId></groupId>
          	<artifactId><artifactId>
          	<version></version>
          	<!--以当前pom.xml为基准的父工程pom.xml文件的相对路径(可选)-->
          	<relativePath></relativePath>
          </parent>
        
    • 将子工程中坐标与父工程坐标重复的内容删除(<project节点下>)
      •   	<groupId></groupId>
          	<version></version>
        
    • 在父工程中统一依赖管理(<project节点下>)
      •   <dependencyManagement>
          	<dependencies>
          		....
          	</dependencies>
          </dependencyManagement>
        
    • 在子工程中删除统一管理依赖的版本号(非必须,尽量统一)
聚合
  • 作用: 一键安装模块工程
  • 配置聚合
    • 一般是配置在父工程中,也可以单独新建一个maven工程来配置
    •   <modules>
        	<module>以当前pom.xml为基准的其他项目的相对路径</module>
        	<module>../MyMavenProject</module>
        </modules>
      
  • 使用: 在配置了聚合的pom.xml的路径下执行mvn install即可
web工程的自动部署
  • 配置(<project节点下>)
      <!--配置当前工程构建过程中的特殊设置-->
      <build>
      	<!--war包名称-->
      	<finalName>AtguiguWeb</finalName>
      	<!--配置构建过程中需要使用的插件-->
      	<plugins>
      		<plugin>
      			<!--专门启动servlet容器的插件-->
      			<groupId>org.codehaus.cargo</groupId>
      			<artifactId>cargo-maven2-plugin</artifactId>
      			<version>1.2.3</version>
      			<!--针对这个插件的配置-->
      			<configuration>
      				<!--配置当前系统中容器的位置-->
      				<container>
      					<containerId>tomcat6x</containerId>
      					<home>D:\DevInstall\apache-tomcat-6.0.39</home>
      				</container>
      				<configuration>
      					<!--确认容器位置-->
      					<type>existing</type>
      					<home>D:\DevInstall\apache-tomcat-6.0.39</home>
      					<!-- 如果Tomcat端口为默认值8080则不必设置该属性 -->
      					<properties>
      						<cargo.servlet.port>8989</cargo.servlet.port>
      					</properties>
      				</configuration>
      			</configuration>
      			<!--配置插件在什么情况下执行-->
      			<executions>  
      				<execution>  
      					<id>cargo-run</id>  
      					<!--生命周期的阶段-->
      					<phase>install</phase>  
      					<goals>  
      						<!--插件的目标(执行的命令)-->
      						<goal>run</goal>  
      					</goals>  
      				</execution>  
      			</executions>
      		</plugin>
      	</plugins>
      </build>
    
  • 使用: 进入pom.xml所在目录,执行mvn deploy即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值