• Maven 笔记


    约定配置:

    目录目的
    ${basedir}存放pom.xml和所有的子目录
    ${basedir}/src/main/java项目的java源代码
    ${basedir}/src/main/resources项目的资源,比如说property文件,springmvc.xml
    ${basedir}/src/test/java项目的测试类,比如说Junit代码
    ${basedir}/src/test/resources测试用的资源
    ${basedir}/src/main/webapp/WEB-INFweb应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面
    ${basedir}/target打包输出目录
    ${basedir}/target/classes编译输出目录
    ${basedir}/target/test-classes测试编译输出目录
    Test.javaMaven只会自动运行符合该命名规则的测试类
    ~/.m2/repositoryMaven默认的本地仓库目录位置

    POM文件

    POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构件,声明项目依赖,等等。

    maven坐标

    maven中构件坐标是通过一些元素定义的,他们是groupId、artifactId、version、packaging

    groupId、artifactId、version是必须要定义的,package可以省略,默认为jar。

    maven中生命周期

    maven中定义的3套生命周期:

    1. clean生命周期
    2. default生命周期
    3. site生命周期

    Maven插件

    maven插件主要是为maven中生命周期中的阶段服务的,maven中只是定义了3套生命周期,以及每套生命周期中有哪些阶段,具体每个阶段中执行什么操作,完全是交给插件去干的。

    插件目标

    maven中的插件以jar的方式存在于仓库中,和其他构件是一样的,也是通过坐标进行访问,每个插件中可能为了代码可以重用,一个插件可能包含了多个功能,比如编译代码的插件,可以编译源代码、也可以编译测试代码;插件中的每个功能就叫做插件的目标(Plugin Goal),每个插件中可能包含一个或者多个插件目标(Plugin Goal)

    目标参数

    插件目标是用来执行任务的,那么执行任务肯定是有参数配的,这些就是目标的参数,每个插件目标对应于java中的一个类,参数就对应于这个类中的属性。

    列出插件所有目标

    1. mvn 插件goupId:插件artifactId[:插件version]:help
    2. mvn 插件前缀:help

    mvn org.apache.maven.plugins:maven-clean-plugin:help

    mvn clean:help

    查看插件目标参数列表

    1. mvn 插件goupId:插件artifactId[:插件version]:help -Dgoal=目标名称 -Ddetail
    2. mvn 插件前缀:help -Dgoal=目标名称 -Ddetail

    mvn org.apache.maven.plugins:maven-clean-plugin:help -Dgoal=help -Ddetail

    mvn clean: help -Dgoal=help -Ddetail

    命令行运行插件

    1. mvn 插件goupId:插件artifactId[:插件version]:插件目标 [-D目标参数1] [-D目标参数2] [-D目标参数n]
    2. mvn 插件前缀:插件目标 [-D目标参数1] [-D目标参数2] [-D目标参数n]

    mvn org.apache.maven.plugins:maven-surefire-plugin:help

    mvn org.apache.maven.plugins:maven-surefire-plugin:test -Dmaven.test.skip=true

    maven内置绑定

    clean生命周期阶段与插件绑定关系

    生命周期阶段插件:目标
    pre-clean
    cleanmaven-clean-plugin:clean
    post-clean

    default生命周期阶段与插件绑定关系

    default生命周期中有23个阶段,我只列出有默认绑定的,其他的没有列出的没有绑定任何插件,因此没有任何实际的行为。

    生命周期阶段插件:目标执行任务
    process-resourcesmaven-resources-plugin:resources复制主资源文件至主输出目录
    compilemaven-compiler-plugin:compile编译主代码至主输出目录
    process-test-resourcesmaven-resources-plugin:testResources复制测试资源文件至测试输出目录
    test-compilemaven-compiler-plugin:testCompile编译测试代码至测试输出目录
    testmaven-surefile-plugin:test执行测试用例
    packagemaven-jar-plugin:jar创建项目jar包
    installmaven-install-plugin:install将输出构件安装到本地仓库
    deploymaven-deploy-plugin:deploy将输出的构件部署到远程仓库

    site生命周期阶段与插件绑定关系

    生命周期阶段插件:目标
    pre-site
    sitemaven-site-plugin:site
    post-site
    site-deploymaven-site-plugin:deploy

    自定义绑定

    1. <build>
    2. <plugins>
    3. <plugin>
    4. <groupId>org.apache.maven.pluginsgroupId>
    5. <artifactId>maven-source-pluginartifactId>
    6. <version>3.2.0version>
    7. <executions>
    8. <execution>
    9. <id>attach-sourceid>
    10. <goals>
    11. <goal>jar-no-forkgoal>
    12. goals>
    13. <phase>verifyphase>
    14. execution>
    15. executions>
    16. plugin>
    17. plugins>
    18. build>

    查看项目最终pom.xml文件

    mvn help:effective-pom


    参考教程:专辑:Maven教程_maven入门-Java充电社【公众号:Java充电社】Java充电社(www.itsoku.com)提供了大量Java学习教程,让大家更好更轻松的学习各种Java技术。http://www.itsoku.com/course/2/62

  • 相关阅读:
    使用wxJava开发微信服务(公众)号,实现新建素材的功能
    Python基础——注释、缩进、语法、标识符、关键字
    发现XWPFDocument写入Word文档时的小BUG:两天的探索与解决之旅
    《算法竞赛·快冲300题》每日一题:“二进制数独”
    C语言《认识结构体》---重点解析内存对齐
    matlab高斯消元法求解线性方程组
    了解LLVM、Clang编译过程
    遗传算法简单案例笑脸拟合(6*6矩阵)(java)
    团队建设游戏分享
    CLR C#--线程基础
  • 原文地址:https://blog.csdn.net/xharvard/article/details/126364440