最近因为公司从antx---->maven,n多的项目放到maven来管理,因此自己也需要对maven有些了解。读了<<maven权威指南中文版>>,记下读后想起的些东西:
1, maven home目录下面conf/setting.xml中可以定义网络代理:Specification for one proxy, to be used in connecting to the network.
2, 同样这个配置文件可以指定一个镜象来代替仓库
3, 查看某个插件的帮助:mvn help:describe -Dplugin=[plugin name], 也可以是mvn help:describe -Dplugin=gid:aid
eg. mvn help:describe -Dplugin=install
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-install-plugin
要输出带有参数的完整的目录列表,后面加上-Dfull
这样输出的信息比较多,如果仅仅输出单个目标的信息,可以加上mojo参数
4, 一个maven插件是多个目标的集合
5, 一个生命周期是一些阶段的序列
6, mvn package, 类似这种命令并没有指定一个插件目标,而是指定了一个maven生命周期阶段
生命周期----》阶段----》目标
7, maven仓库既是从远程仓库下载的构件的缓存,也允许你的项目之间相互依赖。
在maven中,依赖不仅仅是指一个jar,它是一个pom文件。
8,
当为项目创建jar文件时,它所依赖的不会打包到jar包里去,仅仅只是为了编译,当用maven来创建ear或者war包时,可以配置maven让在生
成的ear或者war包中包含依赖,也可以配置maven,使用provided范围,让它排除war文件中特定的依赖。
9, 如果想知道项目的依赖树,可以用dependency插件: mvn dependency:tree
如果仅仅想知道已解决了的依赖列表,可用: mvn dependency:resolve
10, 跳过单元测试,将maven.test.skip设置为true。可以通过环境变量设置如:mvn install-Dmaven.test.skip=true
当surefire插件到达test目标的时候,如果发现maven.test.skip设置为true了,会跳过单元测试。
另外一种方法是:
将build里面的plugins里面的surefire插件加上一个配置项,
<configuration>
<skip>true</skip>
</configuration>
11, 构建一个打包好的应用程序:可以使用maven里的assembly插件:首先得一个装配描述符。 mvn assembly:assembly
12, 如果多于一个项目依赖于一个特定的依赖,可以在dependencyManagement中列出这个依赖,父pom中包含一个版本和一组排除配置,所有子项目中使用groupId与artifactId来引用这个依赖,子项目中可以忽略版本和排除配置
13, 兄弟项目之间一般共享同样的groupId与version,可以使用${project.version}与${project.groupId}这两个内置元素来引用兄弟项目。依赖时只要写清楚artifactId就可以了。
14, 可以通过mvn dependency:analyze来分析使用的,便是没有被直接引用的jar。。。比如你依赖于某一个jar包,但是这个jar包你还是可以用,因为你项目依赖于其他的包也依赖了这个包。
15,
在maven的jar包里面,有一个超级pom.xml:
里面定义了中央仓库的地址,插件仓库的地址,默认build的一些参数(如源代码位置,资源文件地址,测试文件地址。。。),还有一些默认的插件。这些参
数可以通过自定义的setting.xml加以覆盖。
16, maven提供了三个隐式变量:env,project,settings
java系统属性,所有可以通过 System.getProperties方法访问到的属性都能暴露成pom的属性,如,${user.home},${java.home}
17, 默认依赖的scope是compile的,会被打包,如果是test,则为只有在测试的时候在引入该类库。 如果为provided,为在编译和测试时候用,运行时由容器提供。
18, 可以声明对于某一个pom的依赖。不仅仅只是依赖jar包。其他跟依赖jar包一样的,只是加上一个type属性为: <type>pom</type>
19, profile能让你为一个特殊的环境自定义一个特殊的构建---》可移植性
---------------------------------
20, maven-xxx-uber.jar包里定义的pom-4.0.0.xml定义了默认的仓库,插件仓库,基本的插件,build的一些属性(包括源target,源文件,resources,scripts,test源文件目录等)
仓库的位置可以由自定义的settings.xml文件覆盖
21, 如果一个版本号包括SNAPSHOT字段,则在打包和发布的时候将该符号展开为日期和时间值。SNAPSHOP版本只用于开发过程
22, 可以通过settings.xml,pom.xml文件的properties元素设置自己的属性
23. "."在groupId中经常出现,但是最好不要用在artifactId中使用
24, 子项目跟父项目在目录结构上不一定子项目一定得为父项目的子目录,可以用relativePath来指定,如:<relativePath>../a-parent/pom.xml. 这里意味着父项目跟子项目在同一级目录下面。
25, pom依赖,可以添加依赖pom类型的项目,如:
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>stone</artifactId>
<version>3.0.0</version>
<type>pom</type>
</dependency>
</dependencies>
26, maven中三种标准的生命周期:clean,default,site
27, 将一个插件绑定到一个阶段的方法,是在工程的pom.xml文件中plugins中的子plugin结点中,定义时,设置phrase属性(是在executions属性中
分享到:
相关推荐
在软件开发过程中,Maven作为一个强大的项目管理和构建工具,被广泛应用。本文将深入探讨Maven中的模块划分,以及如何有效地组织和管理大型项目。我们将会分析"app-parent"这一特定的压缩包文件名,理解其背后的含义...
该资源是我参照别人的博客来搭建的环境,myeclipse 10.6+maven3+srping+srpingmvc+hibernate4.1+mysql5.5,博客地址:http://blog.csdn.net/liu1220356497/article/details/47701565,该博客是我转载原来的博客主的,...
maven打包跳过test命令 我们可以用两种命令来跳过测试 mvn clean install -DskipTests mvn clean install -Dmaven.... 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
SSM项目使用maven-跑腿...版权声明:本文为CSDN博主「项目花园范德彪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/dearmite/article/details/132200779
Maven+SpringMVC+Dubbo 简单的入门demo配置 源码,,,亲测好用。 具体说明可见这篇转载过来的文章:https://blog.csdn.net/mijichui2153/article/details/81711480
为新学习 JSP 的开发爱好者小白写下这篇文章,教...以下所有信息都是个人完成,若有转载或者借鉴请注明出处。大家可以参考我的博客进行参考部署开发。原文:https://blog.csdn.net/youxun1312/article/details/89342694
为新学习 JSP 的开发爱好者小白写下这篇文章,教...以下所有信息都是个人完成,若有转载或者借鉴请注明出处。大家可以参考我的博客进行参考部署开发。原文:https://blog.csdn.net/youxun1312/article/details/89342694
BigPipe的主要思想是实现浏览器和服务器的并发执行,实现页面的异步加载从而提高页面加载速度....客户端浏览器会根据pagelet的id或标识符,在页面的制定区域对pagelet进行转载渲染.客户端的模块加载采用js技术.
本系统分为三种权限: ...版权声明:本文为CSDN博主「maker011」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/mataodehtml/article/details/118223204
这个压缩包“deeplearning4j.zip”包含了开发者封装的资源,结合了deeplearning4j库与Apache的相关组件,特别是Maven构建工具,便于项目管理和构建。下面我们将详细探讨这两个核心部分。 ** Deeplearning4j ** ...
由于项目需求,要使用富客户端,选择了EasyUI,之前并没有...知识是全人类的财富,传播知识,就是撒播财富的种子,欢迎大家转载,但请看在风流涕淌年迈体衰精力不佳仍然英俊潇洒玉树临风的份上,能保留出处,我心慰矣。
J2EE项目系列(二)-博客管理系统(Maven + SpringMVC + Hibernate以及附加分页和一对多查询功能)大家在使用过程中,可先阅读我的博客会有更好的理解。转载请注明:【JackFrost的博客】更多内容,可以访问喜欢就给...
maven java 源码 notebook -- Java自学系列知识 项目起源于自学Java过程中所做的300+系列笔记,点点滴滴的积累成就了本项目的体系结构... 随着我学习的不断深入,项目也在不断更新、完善中... 非常欢迎大家参与共建~...
【标题】:“JAVA OA平台源码(转载)SPRING BOOT...” 这个开源项目是一个基于Java技术的OA(Office Automation)管理系统的源代码实现,利用了Spring Boot框架进行开发。Spring Boot是Spring生态中的一个核心组件...
大家回想我们开发的时候搭建项目工程的时候,配置pom,各种拷贝。每次都这样是不是很麻烦。...本篇文章来源于源码库(www.aspku.com),转载请注明出处 原文链接:http://www.aspku.com/qita/javacode/298655.html
springboot+ ...版权声明:本文为CSDN博主「项目花园范德彪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/dearmite/article/details/132126648
基于springBoot+...版权声明:本文为CSDN博主「项目花园范德彪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/dearmite/article/details/132129712
Maven包:Maven3.6 部署容器:tomcat7+ 前端: jsp 数据库: mysql ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文...
基于springboot、mybatis、ehcache、thymeleaf、bootstrap做的博客系统,完美自适应,支持markdown编辑器 项目描述 项目基于spring boot和thymeleaf编写的一...是否原创(转载必填原文地址) 互联网源码+二次开发