Maven(一)

maven仓库
        1.本地仓库 :用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找
默认本地仓库位置在 ${user.dir}/.m2/repository,${user.dir}表示windows用户目录。
        2.远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。
                          远程仓库可以在互联网内也可以在局域网内。
        3.中央仓库 :在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。
           
 maven仓库地址、私服等配置信息需要在setting.xml文件中配置,分为全局配置和用户配置。
     在maven安装目录下的有 conf/setting.xml文件,此setting.xml文件用于maven的所有project项目,它作为maven的全局配置。
     如需要个性配置则需要在用户配置中设置,用户配置的setting.xml文件默认的位置在:${user.dir} /.m2/settings.xml目录中,${user.dir} 指windows 中的用户目录。
 maven会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。

maven项目工程目录约定
   使用maven创建的工程我们称它为maven工程,maven工程具有一定的目录规范,如下:
    src/main/java —— 存放项目的.java文件
    src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件
    src/test/java —— 存放所有单元测试.java文件,如JUnit测试类
    src/test/resources —— 测试资源文件
        target —— 项目输出位置,编译后的class文件会输出到此目录
    pom.xml——maven项目核心配置文件

Project
  |-src
  |   |-main
  |   |  |-java        —— 存放项目的.java文件
  |   |  |-resources   —— 存放项目资源文件,如spring, hibernate配置文件
         |-webapp     —— webapp目录是web工程的主目录
         |-WEB-INF
         |-web.xml
  |   |-test
  |      |-java        ——存放所有测试.java文件,如JUnit测试类
  |      |-resources   —— 测试资源文件
  |-target             —— 目标文件输出位置例如.class、.jar、.war文件
  |-pom.xml           ——maven项目核心配置文件

 

常用的maven命令
 compile
 compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。

 test
 test是maven工程的测试命令,会执行src/test/java下的单元测试类
 
 clean
 clean是maven工程的清理命令,执行 clean会删除target目录的内容。

 package
 package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。​​​​​​​

 install
 install是maven工程的安装命令,执行install将maven打成jar包或war包发布到本地仓库。

​​​​​​​
三套生命周期

    maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:        Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
    Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
    Site Lifecycle 生成项目报告,站点,发布站点。
 

​​​​​​​生命周期的阶段
每个生命周期都有很多阶段,每个阶段对应一个执行命令。

clean生命周期的阶段
pre-clean 执行一些需要在clean之前完成的工作
clean 移除所有上一次构建生成的文件
post-clean 执行一些需要在clean之后立刻完成的工作

default周期的内容:

    validate
    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生命周期的阶段

pre-site 执行一些需要在生成站点文档之前完成的工作
site 生成项目的站点文档
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy 将生成的站点文档部署到特定的服务器上

​​​​​​​
命令与生命周期的阶段

   每个maven命令对应生命周期的某个阶段,例如:mvn clean 命令对应clean生命周期的clean阶段, mvn test 命令对应default生命周期的test阶段。
   执行命令会将该命令在的在生命周期当中之前的阶段自动执行,比如:执行mvn clean 命令会自动执行pre-clean和clean两个阶段,mvn test命令会自动执行validate、compile、test等阶段。
注意:执行某个生命周期的某个阶段不会影响其它的生命周期!
如果要同时执行多个生命周期的阶段可在命令行输入多个命令,中间以空格隔开,例如:
clean package 该命令执行clean生命周期的clean阶段和default生命周期的package阶段。

 

​​​​​​​eclipse下使用maven命令

在eclipse下测试命令
clean
compile
test
package
install
Run as 采用 mvn 命令运行 ,Debug as 采用 mvnDebug 命令调试方式运行(可打断点)
Maven clean 清理target目录
Maven test 执行单元测试
Maven install将工程打包后发布到本地仓库
Maven build 使用之前操作过的命令
Maven build … 手动输入命令内容

编译命令 mvn compile
     编译后 .class文件在 target/classes 下 (这个命令只会对java源程序编译, 不会编译测试代码 , 编译测试类 mvn test-compile , 编译后.class 文件在 target\test-classes )

测试命令 mvn test
    执行所有测试用例方法, 重新编译
清除命令 mvn clean
   清除target目录 (清除所有编译结果或者打包结果 ),清理后编译。
打包命名 mvn package
   java项目生成 jar包, web项目生成war包
  默认生成jar包名称 : artifactId-version.jar
安装命令
  安装命令 mvn install  将工程打包后发布到本地仓库
  安装到仓库/groupId/artifactId/version 目录

​​​​​​​  依赖范围

A依赖B,需要在A的pom.xml文件中添加B的坐标,添加坐标时需要指定依赖范围,依赖范围包括:

  • compile:编译范围,指A在编译时依赖B,此范围为默认依赖范围。编译范围的依赖会用在编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包。
  • provided:provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用, provided依赖在编译和测试时需要,在运行时不需要,比如:servlet api被tomcat容器提供。
  • runtime:runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如:jdbc的驱动包。由于运行时需要所以runtime范围的依赖会被打包。
  • test:test范围依赖 在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,比如:junit。由于运行时不需要所以test范围依赖不会被打包。
  • system:system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中JAR文件的路径,需要指定systemPath磁盘路径,system依赖不推荐使用。

 

  • 默认引入 的jar包 ------- compile 【默认范围 可以不写】(编译、测试、运行 都有效 )
  • servlet-api 、jsp-api ------- provided (编译、测试 有效, 运行时无效 防止和tomcat下jar冲突)
  • jdbc驱动jar包 ---- runtime (测试、运行 有效 )
  • junit ----- test (测试有效)

依赖范围由强到弱的顺序是:compile>provided>runtime>test


​​​​​​​pom基本配置

pom.xml是Maven项目的核心配置文件,位于每个工程的根目录,基本配置如下:
​​​​​​​<project > :文件的根节点 .
<modelversion > : pom.xml使用的对象模型版本
<groupId > :项目名称,一般写项目的域名
<artifactId > :模块名称,子项目名或模块名称
<version > :产品的版本号 .
<packaging > :打包类型,一般有jar、war、pom 等 
<name > :项目的显示名,常用于 Maven 生成的文档。  
<description > :项目描述,常用于 Maven 生成的文档
<dependencies> :项目依赖构件配置,配置项目依赖构件的坐标
<build> :项目构建配置,配置编译、运行插件等。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与国已互相成为双方最大的交易伙伴。国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占国外贸总值的15.4%。在过去20余年,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值