maven系列(二)——maven应用分析

maven 查找流程

  • maven 用户——> 本地仓库——>查找私服——>远程仓库

mvn 命令

  • mvn clean 清除

  • mvn compile 编译

  • mvn test 执行测试用例

  • mvn package 打包

  • mvn install 打包后上传到本地仓库

  • mvn deploy

scop的作用

  • test:测试环境生效 juint

  • comile:编译和运行时都会生效

  • provide:编译时生效,打包时候不生效 servlet

  • runtime:编译时不生效,打包时生效 如mysql-connector-java

版本命名

  • x1.x2.x3 x1: x2:表示分支 x3:标识子分支

如:1.1.1-SNAPSHOT->1.1.1.BETA->1.1.1.RELEASE

maven的聚合

maven的依赖传递

  • maven的依赖层次和顺序关系

  • A -依赖B 依赖C;B依赖D1.1 C依赖D1.2;A依赖D的版本取决于B和C的顺序

  • 顺序优先,层次优先,短的优先

maven 私服nexus的搭建

  • 简介

  • 下载地址

  • vi /etc/profile:

  • vi nexus.properties

  • nexus-work :私服的位置

  • type:

    • hosted:私有化仓库,专门用于存储内部生成的文件;

      • 3rd party
      • snapshots:本地项目的快照仓库
      • release:本地项目发布的正式版本
    • group:分组仓库;

      • 整合仓库,可以整合releas,snap central,
    • proxy:公网发布的jar,如spring/mybatis

      • central:中央仓库

      • apache snapshots:apache 的快照

  • 私服访问方式

    • 在pom.xml中配置站点

      <repositories>
          <repository>
              <id>nexusSnapshots</id>
              <name>snapshots</name>
              <url></url>
          </repository>
      </repositories>
    • 在settings.xml全局配置

      • mirror:代表仓库从哪个仓库下载;profile,reponsitory:代表哪些仓库的配置

      • priole: 配置仓库站点,可以配置多个

      • activeProfiles:激活priole,相当于一些全局变量

      • distributionManagement 配置deloy,deploy前需要检查是否有权限

    <snapshotRepository>
                <id>fuze-repo</id>
                <url>${fuze-repo.root.path}/repositories/snapshots</url>
            </snapshotRepository>

maven的生命周期

  • clean lifecycle : 构建前的清理工作
    • pre-clean 执行一些需要在clean之前完成的工作
    • ==clean== 移除所有上一次构建生成的文件
    • post-clean 执行一些需要在clean之后立刻完成的工作
  • Default lifecycle: 构建的核心部分,编译、打包、部署、上传
    • ==validate== 项目及所必须的环境验证
    • initialize 初始化构建状态,例如设置属性或创建目录。
    • generate-sources 生成次源包
    • process-sources
    • generate-resources
    • process-resources 复制并处理资源文件,至目标目录,准备打包。
    • ==compile== 编译项目的源代码。
    • process-classes
    • generate-test-sources
    • process-test-sources
    • generate-test-resources
    • process-test-resources 复制并处理资源文件,至目标测试目录。
    • test-compile 编译测试源代码。
    • process-test-classes
    • ==test== 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
    • prepare-package
    • ==package== 接受编译好的代码,打包成可发布的格式,如 JAR 。
    • pre-integration-test
    • integration-test
    • post-integration-test
    • ==verify==
    • ==install== 将包安装至本地仓库,以让其它项目依赖。
    • ==deploy== 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。
  • site lifecycle:项目报告生成,站点文档生成
    • pre-site 执行一些需要在生成站点文档之前完成的工作
    • site 生成项目的站点文档
    • post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
    • site-deploy 将生成的站点文档部署到特定的服务器上
参考文档

maven 插件的使用

  • 核心插件

  • 插件使用

    <build><plugins><plugin><groupId></plugin></plugins></build>
    
    如:<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.4</version>
        <executions>
        <execution>
        <id>attach-source</id>
        <phase>verify</phase>
        <goals>
        <goal>jar-no-fork</goal>
        </goals>
        </execution>
        </executions>
        </plugin>
    • executions:execution

    • phase: 什么时候,生命周期阶段

    • goals:goal:干什么事情,生命周期目标

    • configuration:需要什么配置

    • rar 插件说明:

  • 打包依赖包

  • mvn rar:rar

发布了91 篇原创文章 · 获赞 27 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/xhwwc110/article/details/79900567