maven学习笔记

GAV坐标
项目解释
groupId组织机构/顶层项目(机构网址反写+项目名)
artifactId项目/库(项目名+模块名)
version唯一发行版本号
  • maven使用GAV坐标来唯一标识每个不同的构件的
安装jar包到本地仓库
mvn install:install-file -DgroupId=g -DartifactId=a -Dversion=v -Dclassifier=jdk15 -Dpackaging=jar -Dfile=f
pom文件指定jdk版本和编码
<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>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
使用阿里云镜像仓库提速
  • 修改配置文件~/.m2/settings.xml
<mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
 </mirror>
引用本地lib
<dependency>
    <groupId>com.dameng</groupId>
    <artifactId>DmJdbcDriver</artifactId>
    <version>8.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/../lib/DmJdbcDriver18.jar</systemPath>
</dependency>
指定使用的jdk版本
<profile>    
        <id>jdk18</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>
  • 注意这里的activeByDefault为true,表示如果没有在其他地方激活就默认激活这个profile,也可以使用activeProfiles显式激活
maven构建web的目录结构(使用maven-archetype-webapp)
  • src
    • main
      • java
      • resources
      • webapp
        • WEB-INF
          • web.xml
    • test
      • java
      • resources
  • pom.xml
maven常用插件
命令详解
mvn clean清理项目生产的临时文件,一般是模块下的target目录
mvn compile编译源代码,一般编译模块下的src/main/java目录
mvn package项目打包工具,会在模块下的target目录生成jar或war等文件
mvn test测试命令,或执行src/test/java/下junit的测试用例.
mvn install将打包的jar/war文件复制到你的本地仓库中,供其他模块使用
mvn deploy将打包的文件发布到远程参考,提供其他人员进行下载依赖
mvn site生成项目相关信息的网站
mvn eclipse:eclipse将项目转化为Eclipse项目
mvn dependency:tree打印出项目的整个依赖树
mvn archetype:generate创建Maven的普通java项目
mvn tomcat:run在tomcat容器中运行web应用
mvn jetty:run调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用
冷知识
  • 一个java项目通过maven自动下载依赖时,会涉级读取三个配置文件,分别是项目下的pom.xml 文件 、家目录下的.m2/settings.xml 与 maven 全局配置settings.xml ,局部配置优先级大于全局配置,用户自定义配置会覆盖全局配置。所以三者的级先是 pom.xml > ~/.m2/settings.xml > ${M2_HOME}/conf/settings.xml 。
  • artifact:中文名为构件,是工程将要产生或需要使用的文件,它可以使jar文件,zip源代码,二进制文件,war文件,甚至可以是pom文件。每个artifact都由GAV坐标唯一识别。
  • dependency:为了能够构建或者运行,一个典型的java工程会依赖其他的包。在maven中,这些被依赖的包被称为dependency。dependency一般是其他工程artifact。
  • plugin-in:可以说maven就是一堆插件的集合,它的每一个功能都是由插件完成的。插件提供goal(类似Ant中的target),并根据在POM中找到的元数据完成工作。
依赖问题
  • A依赖B,若A被包含到工程中,那么B会自动包含到工程中,不需要显式指定。
  • A依赖B,B依赖C,C就是A的传递依赖。传递依赖冲突解决方法是短路优先原则和先声明优先原则。
高级用法
  • 聚合,使用modules标签聚合几个项目
  • 继承,子项目使用parent标签
  • dependencyManagement
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值