maven构建过程中的各个环节

  • 清理
    将以前编译得到的旧的class字节码文件删除,为下一次编译做准备
  • 编译
    将java源程序变异成class字节码文件
  • 测试
    自动测试,自动调用junit程序
  • 报告
    测试程序执行的结果
  • 打包
    动态web工程打war包,java工程打jar包
  • 安装
    maven特定的概念—将打包的道德文件复制到仓库中的特定位子
  • 部署
    将动态web工程生成的war包复制到Servlet容器的制定根目录下,使其运行。

maven的核心概念

  • 约定的目录结构
  • POM
    • pom.xml对于maven工程是核心配置文件,与构建过程相关的一切设置都在这个文件中进行配置。重要的程度相当于web.xml杜宇动态web工程
  • 坐标
    • groupId:公司活组织域名的倒写加上项目名
<groupid>com.milkandtea.MavenDemo</groupid>
- artifactid:模块名
<artifactid>Hello</artifactid>
- version:版本号
<version>1.0.0</version>
  • 依赖
    • maven解析依赖信息时会到本地仓库中国查找被依赖的jar包
    • 依赖的范围
      • compile
        • 对主程序是否有效:有效
        • 对测试程序是否有效:有效
        • 是否参与打包 :参与
      • test
        • 对主程序是否有效:无效
        • 对测试程序是否有效:有效
        • 是否参与打包:不参与
        • 典型例子:junit
      • provided
        • 对主程序是否有效:有效
        • 对测试程序是否有效:有效
        • 是否参与打包:不参与
        • 是否参与部署:不参与
        • 典型的例子:servlet-api.jar
  • 仓库
    • 本地仓库:当前电脑上部署的仓库目录,为当前电脑上所有的maven工程服务
    • 远程仓库:
      • 私服:搭建在局域网环境中,为局域网范围内的所有Maven工程服务
      • 中央仓库:架设在Internet上,为全世界所有的maven工程服务
      • 中央仓库镜像:为了分担中央仓库的流量,提升用户访问速度
    • 仓库中保存的内容:Maven工程
      • Maven自身所需要的的插件
      • 第三方框架或者工具的jar包
      • 我们自己开发的maven工程
  • 生命周期/插件/目标
    • 各个构建环节执行的顺序:不能打乱顺序,必须按照既定的顺序来执行
    • maven的核心程序中定义了抽象的生命周期,生命周期中各个阶段的具体任务是由插件来完成的。
    • maven的核心程序为了更好地实现自动化构建,按照这一特点执行生命中其中的各个阶段:不论现在要执行的生命周期中的哪一个阶段,都是这个生命周期最初始的位置开始执行。
  • 继承
  • 结合

常用的maven命令

  • 注意:执行与构建过程相关的maven敏玲,必须进入到pom.xml所在的目录中,与构建过程相关过程关系:编译,测试,打包,部署等
  • 常用命令
命令描述
mvn -version显示版本信息
mvn clean清理项目产生的临时文件,一般是模块下的target目录
mvn compile编译源代码,一般编译模块下的src/main/java目录
mvn package项目打包工具,会在模块下的target目录下生成jar或者war文件
mvn test测试命令,执行src/text/java下的junit测试用例
mvn install将打包的jar或者war文件复制到你的本地仓库中,供其他模块使用
mvn deploy将打包的文件发布到远程参考,提供其他人员下载
mvn site生成项目信息相关的网站
mvn eclipse:eclipse将项目转换成eclipse项目
mvn dependency:tree打印出整个项目的依赖树
mvn archetype:generate创建maven的普通java项目
mvn tomcat7:run在tomcat容器中运行web应用
mvn jetty:run调用jetty插件的Run目标在jetty Servlet容器中启动web应用

更改maven的本地仓库地址

在conf文件下的settings.xml文件中找到localRepository

<localRepository>E:/maven/repository</localRepository>

更改中央仓库中的url,使得下载相关依赖更快

在conf文件下的settings.xml文件中找到 mirrors标签
添加阿里云镜像

  <mirrors>
  <mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  </mirror>
  </mirrors>

maven配置相关插件

在build>plugins下面进行配置,下面的是jetty插件的配置

<plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>9.2.11.v20150529</version>
        <configuration>
          <scanIntervalSeconds>10</scanIntervalSeconds>
          <webApp>
            <contextPath>/abc</contextPath>
          </webApp>
<!--          <connectors>-->
<!--            <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">-->
<!--              <port>8888</port>-->
<!--            </connector>-->
<!--          </connectors>-->
        </configuration>
      </plugin>
jetty:run

这里是tomcat插件的配置

<plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8080</port>
          <path>/abc</path>
          <uriEncoding>UTF-8</uriEncoding>
        </configuration>
      </plugin>
tomcat:run 

maven打包项目步骤

首先在pom.xml文件中配置打包环境

<profiles>
    <profile>
      <id>dev</id>
      <properties>
        <env>dev</env>
      </properties>
<!--      未指定环境时,默认打包dev环境-->
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>test</id>
      <properties>
        <env>test</env>
      </properties>
    </profile>
    <profile>
      <id>product</id>
      <properties>
        <env>product</env>
      </properties>
    </profile>
  </profiles>

在build配置resources


```java
<resources>
      <resource>
        <directory>src/main/resources/${dev}}</directory>
      </resource>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
          <include>**/*.properties</include>
          <include>**/*.tld</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>

然后再右上角设置打包那个环境
在这里插入图片描述

package//普通的编译
clean compile package -Pdev -Dmaven.dev.skip=true//打包开发版本
clean compile package -Ptest -Dmaven.test.skip=true//打包测试版本
clean compile package -Pproduct -Dmaven.product.skip=true//打包正时版本

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值