Maven详解

 

1、Maven主要做了两件事:

2、使用maven构建一个普通Java项目之后的目录结构:

3、打包、依赖、仓库:

4、Maven的3个基本周期

5、Maven常用命令及其快捷操作

6、Maven常用POM属性


 

1、Maven主要做了两件事:

  • 统一开发规范与工具
  • 统一管理jar包

 

2、使用maven构建一个普通Java项目之后的目录结构:

 

可以看到使用Maven构建的普通Java项目,对源代码、单元测试代码、资源乃至后续需要的文件都有专门的目录规划。还有一个pom.xml。

  • main目录下是项目的主要代码,test目录下存放测试相关的代码
  • target:存放编译输出后的代码
  • src/main/java下存放Java代码,src/main/resources下存放配置文件
  • 这里没有webapp,Web项目会有webapp目录,webapp下存放Web应用相关代码
  • pom.xml,这是Maven的核心配置文件

 

3、打包、依赖、仓库:

1、packing

项目打包的类型,可以使jar、war、rar、ear、pom,默认是jar

2、dependencies和dependency

说到这里,就有一个本地仓库和远程仓库的概念了。

(1)本地仓库:

默认情况下,不管在Window还是Linux下,每个用户在自己用户目录下都有一个路径名为.m2/repository/的仓库目录。还有一个settings.xml主要内容是描述仓库配置,仓库连接代理等具体参数等。如果你想自定义本地仓库目录地址。你可以编辑文件~/.m2/settings.xml,设置localRepository元素的值为想要的仓库地址,例如:

这样,该用户的本地仓库地址就被设置成了 D:\java\repository\。

 

(2)远程仓库 - 中央仓库:

由于最原始的本地仓库是空的,Maven必须知道至少一个可用的远程仓库,才能在执行Maven命令的时候下载到需要的构件。中央仓库就是这样一个默认的远程仓库,Maven的安装文件自带了中央仓库的配置。中央仓库包含了这个世界上绝大多数流行的开源Java构件,以及源码、作者信息、SCM,信息、许可证信息等,每个月这里都会接受全世界Java程序员大概1亿次的访问,它对全世界Java开发者的贡献由此可见一斑。

中央仓库可以使用国内的镜像,国外的中央仓库用起来太慢了,推荐国内的阿里云镜像。镜像利用<mirrorOf>来配置。

 

(3)远程仓库 - 私服:

 

(4)本地仓库和远程仓库的调用:

本地仓库和远程仓库的调用是这样的:Maven工程先从本地仓库中获取jar包,当无法获取指定jar包时,本地仓库会从自动从远程仓库(中央仓库)中下载jar包,并放入本地仓库以备将来使用。

 

注:重新下载Maven工程所依赖的jar包、导入jar包都需要触发Maven工程的build workspace,那么如何才能触发Maven工程的build workspace?

答:找到一个pom.xml,随便修改一下,加一个空格、减一个空格什么的,ctrl+s保存一下,便会触发Maven工程的build workspace了

 

4、Maven的3个基本周期

clean、default和site,其中每个周期各包含几个阶段,常用的是clean周期里的clean和default周期里的install,执行install时会自动执行package生成jar文件。

~~~~~~~~~~~~~~~~

在项目pom.xml目录下,执行命令:

mvn clean(目的是清理编译过程中多余的文件)

然后执行:mvn:install

成功后可以看到target目录下生成了jar文件。

Maven生成WAR包时自动更新版本号version 插件:buildnumber-maven-plugin

 

 

5、Maven常用命令及其快捷操作

mvn clean:表示运行清理操作(会默认把target文件夹中的数据清理)。

mvn clean compile:表示先运行清理之后运行编译,会将代码编译到target文件夹中。

mvn clean test:运行清理和测试。

mvn clean package:运行清理和打包。

mvn clean install:运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用。

mvn clean deploy:运行清理和发布(发布到私服上面)。

上面的命令大部分都是连写的,也可以拆分分别执行。

 

注:在Intellj idea中有快捷操作,

在工程的Lifecycle下有package,选择这个将会打包,打包出来的jar会放在target下。将jar包放在桌面,在Windows下使用cmd命令窗口: java -jar ****.jar,就可以运行刚刚打出来的jar包了。因为intellj idea内置了Tomcat,在打包的时候也放在了jar里面,所以命令行运行的时候也无需配置Tomcat了。

如图:

 

6、Maven常用POM属性

${project.build.sourceDirectory}:项目的主源码目录,默认为src/main/java/.

${project.build.testSourceDirectory}:项目的测试源码目录,默认为/src/test/java/.

${project.build.directory}:项目构建输出目录,默认为target/.

${project.build.outputDirectory}:项目主代码编译输出目录,默认为target/classes/.

${project.build.testOutputDirectory}:项目测试代码编译输出目录,默认为target/testclasses/.

${project.groupId}:项目的groupId.

${project.artifactId}:项目的artifactId.

${project.version}:项目的version,于${version}等价

${project.build.finalName}:项目打包输出文件的名称,默认为${project.artifactId}${project.version}.

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值