IDEA中maven的相关配置及命令解释
IDEA中maven的相关配置
IDEA中maven的相关配置
- maven的安装和集成
- pom.xml中一些标签的解释
maven的一些命令和应用
- 一些基本且常用的命令
- 一些扩展命令
- 其他
- 备注
IDEA中maven的相关配置
本文主要介绍一些IDEA中集成maven的配置和操作步骤
maven的安装和集成
- 下载maven ,Apache官网上很容易下载(可选 IDEA中自带了maven);
配置
Maven home directory
: 可以选择你自己的maven版本User settings file
: 点击右边的Override可以改变maven配置文件的位置 上面的.m2是默认位置Local repository
: 也可以点选右边Override来改变本地仓库位置 但更推荐在User settings file
中配置的配置文件里改变localRepository
标签的内容
例如
<localRepository>D:/WorkSoftware/Maven/repository</localRepository>
镜像配置
由于一些已知的原因 maven从国外服务器上download依赖的速度很慢 所以推荐在配置文件的mirrors
标签中配置镜像来加快下载速度 推荐的镜像是阿里云的maven镜像
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
pom.xml中一些标签的解释
pom.xml是maven的标志性文件 maven的所有命令也都是基于pom的 其中一些比较重要的标签很有必要说明一下:
project标签的直系标签
: 形如com.example demo 0.0.1-SNAPSHOT demo Demo project for Spring Boot
这是表示该pom自身信息的说明性标签 它使打包后的本maven工程可以像其他依赖一样被引用
parent
: 指明pom的父pom 就像java中的继承一样 子pom会继承父pom的一些配置和属性 越是基础的pom其配置通用性也就越强properties
: 可以配置比如版本之类的标签 类似于java中的全局变量 在作用范围内可以用$
符号引用dependencies
: 作为标签dependency
的容器 为pom的依赖引用 典型的依赖引用如下:
com.oracle
ojdbc6
11.2.0.1.0 dependencyManagement
: 我们可以发现这里面可能也定义了一些依赖 但这些依赖只是声明 在本pom中并没有起到引用到服务的作用 它们的作用是为它的子pom提供版本号等信息以统一管理 通常出现在多个服务引用相同服务的情况 这里的子pom在dependencies标签中的无版本号引用才是真正的引用 统一版本等信息可以避免出现一些不必要的版本冲突问题 所以如果我们在pom中的依赖集里发现了一些没有标识版本号的依赖 不要怀疑 它一定是有父pom的build
: 定义maven的插件集 可以扩展mvn命令 或者环境配置过滤器 构建需要的资源等profiles
: 可以用来定义不同的开发环境 在mvn -P命令中配合build
标签里的过滤器和资源可以指定开发环境以适应不同的构建场合
maven的一些命令和应用
一些基本且常用的命令
mvn –version显示版本信息
mvn clean清理项目生产的临时文件,一般是模块下的target目录
mvn compile编译源代码,一般编译模块下的src/main/java目录 在target下生成.class文件
mvn validate验证工程是否正确,所有需要的资源是否可用。
mvn install将打包的jar/war文件复制到你的settings.xml文件中配置的本地仓库中(包括jar和pom),供其他模块使用
mvn package项目打包工具,会在模块下的target目录生成.class文件还有jar或war等文件 (一开始创建maven项目的时候可以指定默认打包格式 也可以在pom中用packaging:jar或packaging:war来标注) 如果某个maven项目依赖另一个自己写的maven项目 比如B引用A 那么必须先将Ainstall进本地仓库里 然后再对B进行打包才不会报错
mvn test测试命令,或执行src/test/java/下junit的测试用例.
mvn deploy将打包的文件发布到远程参考,提供其他人员进行下载依赖
一些扩展命令
这些命令通常要在bulid中安装命令对应的插件 命令格式如下:mvn [plugin-name]:[goal-name]
该命令的意思是:执行plugin-name
插件的goal-name
指令
例如:
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 应用
其他
- -D开头参数的含义: 传入属性参数
比如命令:mvn package -Dmaven.test.skip=true
以-D
开头,将maven.test.skip
的值设为true
,就是告诉maven打包的时候跳过单元测试。同理,mvn deploy-Dmaven.test.skip=true
代表部署项目并跳过单元测试。 - -e 显示maven运行出错的信息
- -X 显示maven允许的debug信息
- -P 使用指定的Profile配置(上文已做描述)
备注
❤ 如果内容中有纰漏请指正
还没有评论,来说两句吧...