maven小结
来源:互联网 发布:js获取月为两位数 编辑:程序博客网 时间:2024/05/22 06:29
现在就maven的一些知识进行汇总归纳;
基础知识:
1: maven是个啥;
一种简单粗暴的理解就是:maven是一个帮我们统一管理 项目依赖的jar包 的工具;(虽然比较片面 不过简单实用,因为我们大部分只用到了这部分功能)
2: 如何创建maven项目
maven 的理念是:约定大于配置; 所以maven项目的结构也是约定俗成的;
如:我这个maven-archetype项目 ,项目文件夹下有1个文件(pom.xml),2个文件夹(src,target);
pom.xml 是 maven的配置文件; src/main/java 放置java代码 ; src/java/resources 放置配置文件; src/test/java 放置测试代码; target 是maven编译结果的文件夹地址;
3: maven项目的3要素;
在pom中配置项目中,必须指定的3个要素: groupid ,artifactid,version;
gid+aid组成了项目的唯一标识; version是不同版本;
所以每个项目的 gid+aid 必须是 唯一的;
4: maven项目的类型
在pom中我们可以指定项目的类型;常见类型有(pom,war,jar,ear) ,默认为jar;在<packaging>中配置;
pom:项目只有pom文件,不会解析其他内容 (src下的内容)
war: web项目,war类型的项目,web相关代码(jsp,js,css等)放在 src/main/webapp 下;
ear : ear项目; (其实就是一种打包结构了,可以不了解,如果想深入了解的可以自行百度或者微信qq问我)
jar : 普通的java项目; 编译之后会生成jar ;
5: maven的继承
maven项目如果类型为pom,那么就可以作为其他项目 父类;
继承可以继承如下内容: gid,version ; 还有 父类中的其他配置(依赖,参数配置,插件等);
一般什么时候用 依赖呢? 一个大项目 分成 很多子项目的时候 我们一般会使用 父类来管理 各个子项目;
6: pom.xml 中的 module(s) 是啥?
在pom项目中,我们可以配置module引入其他项目;
注意: module 配置的是其他项目的文件夹名称 ;
module的作用是啥呢? 类似于 include ,就是引入其他项目; idea 打开pom文件会识别当前的项目,如果当前项目是 pom类型,并且配置了 module 那么 module中的项目也会被识别出来;
7: maven 如何配置依赖
在pom.xml 中 配置 dependency
因为maven项目的唯一标识是 gid+aid 所以 如果2个依赖的 gid和aid都完全相同则maven会认为是依赖一个项目;
8: maven 依赖的传递性 ;
A配置依赖B,B配置了依赖C; 那么C也会传递到A ; 会表现为A依赖了B和C;
9: maven依赖类型
maven项目之前我们说过 maven 可以配置 pom的类型,所以在配置dependency时 也需要配置 <type> (对应我们之前的 packaging类型 )不过一般都是依赖jar,所以默认是 jar 就不需要显示的申明;但如果依赖的项目是pom或者其他的则需要配置type 指明项目类型;
7中我们说了 maven的依赖是可以传递的,其实说的不是很对; 默认配置下是可以传递的,但是我们可以配置 <scope> ,scope的取值有 runtime,compile,test,provided,system; (默认是compile)
compile:参与项目的编译及运行 可以传递
runtime:不参与项目的编译,但是后期打包及运行是会使用到该jar ; 可以传递
test:测试使用;仅当运行 main/test/java 下的代码时起作用,不传递
provided:仅参与到编译;不会打包到编译文件; 不传递
system: 本地jar非maven仓库jar ,跟provided 差不多,只是provided是从仓库获取 system 是从其他路径; 与 systemPath 协同使用,systemPath指定jar所在地址; 仅参与编译 不打包 不传递;
10: 本地jar如何 maven 管理呢
一些老项目需要的jar maven仓库没有,这时候想maven管理 ,一个是使用上面说的 system方式配置,但是打包无法获取jar,还需要手动的进行复制;
手动的将 jar install到本地仓库或者让管理员 deploy 到maven服务器;如果deploy了,那就跟其他项目是一样了;不deploy的话每个人都得手动install 太麻烦,所以 可以使用如下方法 进行简化; 配置plugin
依赖的地方只需要跟普通的依赖一样 ,不需要 scope 为 system;
每次打开项目先执行下 clean;
原理就是 通过plugin 帮我们执行 install jar到本地仓库;
基础知识:
1: maven是个啥;
一种简单粗暴的理解就是:maven是一个帮我们统一管理 项目依赖的jar包 的工具;(虽然比较片面 不过简单实用,因为我们大部分只用到了这部分功能)
2: 如何创建maven项目
maven 的理念是:约定大于配置; 所以maven项目的结构也是约定俗成的;
如:我这个maven-archetype项目 ,项目文件夹下有1个文件(pom.xml),2个文件夹(src,target);
pom.xml 是 maven的配置文件; src/main/java 放置java代码 ; src/java/resources 放置配置文件; src/test/java 放置测试代码; target 是maven编译结果的文件夹地址;
3: maven项目的3要素;
在pom中配置项目中,必须指定的3个要素: groupid ,artifactid,version;
gid+aid组成了项目的唯一标识; version是不同版本;
所以每个项目的 gid+aid 必须是 唯一的;
4: maven项目的类型
在pom中我们可以指定项目的类型;常见类型有(pom,war,jar,ear) ,默认为jar;在<packaging>中配置;
pom:项目只有pom文件,不会解析其他内容 (src下的内容)
war: web项目,war类型的项目,web相关代码(jsp,js,css等)放在 src/main/webapp 下;
ear : ear项目; (其实就是一种打包结构了,可以不了解,如果想深入了解的可以自行百度或者微信qq问我)
jar : 普通的java项目; 编译之后会生成jar ;
5: maven的继承
maven项目如果类型为pom,那么就可以作为其他项目 父类;
继承可以继承如下内容: gid,version ; 还有 父类中的其他配置(依赖,参数配置,插件等);
一般什么时候用 依赖呢? 一个大项目 分成 很多子项目的时候 我们一般会使用 父类来管理 各个子项目;
6: pom.xml 中的 module(s) 是啥?
在pom项目中,我们可以配置module引入其他项目;
注意: module 配置的是其他项目的文件夹名称 ;
module的作用是啥呢? 类似于 include ,就是引入其他项目; idea 打开pom文件会识别当前的项目,如果当前项目是 pom类型,并且配置了 module 那么 module中的项目也会被识别出来;
7: maven 如何配置依赖
在pom.xml 中 配置 dependency
因为maven项目的唯一标识是 gid+aid 所以 如果2个依赖的 gid和aid都完全相同则maven会认为是依赖一个项目;
8: maven 依赖的传递性 ;
A配置依赖B,B配置了依赖C; 那么C也会传递到A ; 会表现为A依赖了B和C;
9: maven依赖类型
maven项目之前我们说过 maven 可以配置 pom的类型,所以在配置dependency时 也需要配置 <type> (对应我们之前的 packaging类型 )不过一般都是依赖jar,所以默认是 jar 就不需要显示的申明;但如果依赖的项目是pom或者其他的则需要配置type 指明项目类型;
7中我们说了 maven的依赖是可以传递的,其实说的不是很对; 默认配置下是可以传递的,但是我们可以配置 <scope> ,scope的取值有 runtime,compile,test,provided,system; (默认是compile)
compile:参与项目的编译及运行 可以传递
runtime:不参与项目的编译,但是后期打包及运行是会使用到该jar ; 可以传递
test:测试使用;仅当运行 main/test/java 下的代码时起作用,不传递
provided:仅参与到编译;不会打包到编译文件; 不传递
system: 本地jar非maven仓库jar ,跟provided 差不多,只是provided是从仓库获取 system 是从其他路径; 与 systemPath 协同使用,systemPath指定jar所在地址; 仅参与编译 不打包 不传递;
10: 本地jar如何 maven 管理呢
一些老项目需要的jar maven仓库没有,这时候想maven管理 ,一个是使用上面说的 system方式配置,但是打包无法获取jar,还需要手动的进行复制;
手动的将 jar install到本地仓库或者让管理员 deploy 到maven服务器;如果deploy了,那就跟其他项目是一样了;不deploy的话每个人都得手动install 太麻烦,所以 可以使用如下方法 进行简化; 配置plugin
依赖的地方只需要跟普通的依赖一样 ,不需要 scope 为 system;
每次打开项目先执行下 clean;
原理就是 通过plugin 帮我们执行 install jar到本地仓库;
0 0
- Maven小结
- Maven小结
- Maven 小结
- maven小结
- Maven小结
- Maven小结
- maven小结
- Maven小结
- maven小结
- maven小结
- maven小结
- Maven小结
- Maven 小结I
- maven命令小结
- maven使用小结(一)
- Maven使用小结
- maven命令小结 .
- Maven使用小结
- java的动态代理机制详解
- 纯C打造轻量级brainfuck脚本语言解释器
- GitHub 中国区前 100 名到底是什么样的人?
- Opencv3.1基于Vibe去除前景
- 文字根据状态改变颜色 android:textColor
- maven小结
- Vim 中读写特殊字符
- 我是一个线程
- jira scriptrunner 例五 例六 校验
- This 的用法
- sql地区表最新
- linux下一款ssh大杀器screen
- 在linux系统下怎么安装两个nginx
- 【第一篇博文】用于记录自己的ctf经历