[maven] 使用问题及思考汇总
(1)Maven坐标
maven坐标可以唯一标识一个项目,包含四个元素 groupId , artifactId, packaging, version。
groupId:一般为团体,公司,项目。如 oceanic-web, oceanic-dal, oceanic-biz 同属一个 groupId。
artifactId:在 groupId 下的表示一个单独项目的唯一标识符。项目名称ID/模块名称 。
packaging:标识项目的类型,如 jar,war,pom 等。
version:版本号。
例子:
oceanic -web的坐标定义如下:
groupId: com.oceanic.framework
artifactId:oceanic-web
packaging: war
version:0.0.1-SNAPSHOT oceanic -dal的坐标定义如下:
groupId: com.oceanic.framework
artifactId:oceanic-dal
packaging: jar
version:0.0.1-SNAPSHOT oceanic -biz的坐标定义如下:
groupId: com.oceanic.framework
artifactId:oceanic-biz
packaging: jar
version:0.0.1-SNAPSHOT
(2)下载的依赖jar包的存放路径
/groupId/artifactId/version/artifactId-version.packaging
(3)在eclipse里配置指向的settings文件
preference -> Maven -> User Settings -> 选择待导入的settings文件 ->Apply
(4)解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
设置Java Compiler为1.7,同时在项目的pom.xml的<build></build>标签中加入:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
(5)全部配置和自定义配置
Maven安装目录的conf子目录下面的settings.xml是全局配置。
用户家目录的.m2子目录下面的settings.xml的配置只是针对当前用户的。这个文件一般是不存在的,但是Maven允许我们在这里定义我们自己的settings.xml,如果需要在这里定义我们自己的settings.xml的时候就可以把Maven安装目录下面的settings.xml文件拷贝到用户家目录的.m2目录下,然后改成自己想要的样子。这样,自定义的配置会覆盖全局配置作为maven的配置文件来使用。
(6)dependencies 和 dependencyManagement 的区别
dependencies
即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项。
dependencyManagement
如果在子项目中不写该依赖项,那么子项目中是不会从父项目继承该依赖项的;只有在子项目中写了该依赖项,才会从父项目中继承该项,并且version 和 scope 都读取自 父pom。
(7)子模块parent节点下的<relativePath/> 节点是什么含义?
表示父项目的pom.xml文件的相对路径。默认值是../pom.xml。
查找顺序:
首先在构建当前项目的地方寻找父项目的pom
其次在文件系统的指定位置(relativePath)
然后在本地仓库
最后在远程仓库寻找父项目的pom
(8)dependencies VS dependencyManagement
maven中的 dependencies 和 dependencyManagement 的区别 :前者,即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项。后者,如果在子项目中不写该依赖项,那么子项目中是不会从父项目继承该依赖项的;只有在子项目中写了该依赖项,才会从父项目中继承该项,并且version 和 scope 都读取自 父pom。
博客:
Maven学习总结(八)——使用Maven构建多模块项目
[maven] 使用问题及思考汇总的更多相关文章
- Maven构建Web项目问题汇总
1.Dynamic Web Module 3.0 requires Java 1.6 or newer? 修改pom.xml文件,如下: <build> <plugins> & ...
- 读书笔记-《Maven实战》-关于Maven依赖传递的思考 2018/4/26
上次读书笔记中,提到了依赖传递.看着依赖传递表,一直在思考为什么会是这样. 先看传递表: compile test provided runtime compile test provided run ...
- Maven- 使用Maven构建一个可执行jar
How to Create an Executable JAR with Maven 1.最重要的是使用jar类型,<packaging>jar</packaging>.当然不 ...
- maven 中的工程依赖和层级依赖?
一.什么是工程依赖? 思考问题?1.1一旦开始分模块开发的时候,之前的所有包都会被拆分成一个一个的项目 model mapper service ... 其实mapper需要model的支持,怎么解决 ...
- Dubbo快速入门
Dubbo作为一个RPC框架,其最核心的功能就是要实现跨网络的远程调用.这次创建两个应用,一个作为服务的提供方,一个作为服务的消费方.通过Dubbo来实现服务消费方远程调用服务提供方的方法. 服务提供 ...
- Maven 的这 7 个问题你思考过没有?
在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个 ...
- 开发常用镜像资源替换为国内开源镜像(yum,compose,maven,docker,android sdk,npm,国内开源镜像汇总)
一.国内开源镜像站点汇总 阿里云开源镜像站 (http://mirrors.aliyun.com/)网易开源镜像站 (http://mirrors.163.com/)中国科学技术大学开源镜像站 (ht ...
- Eclipse maven问题汇总
在使用eclipse+maven的过程中,遇到一系列问题,先汇总记录如下: 1. 在java工程中,缺少Maven依赖: 这个问题比较棘手,一般都对eclispe的工程结构不是很了解,后来经过长时间的 ...
- 国内maven仓库地址资源汇总
国内maven仓库地址:阿里云maven仓库,网易163maven仓库,以及其他maven仓库地址. 国内下载maven一般速度都很慢,下载需要很久时间.这里汇总了一些国内的镜像资源 附带pom文件中 ...
随机推荐
- C# WPF MVVM 实战 – 5- 用绑定,通过 VM 设置 View 的控件焦点
本文介绍在 MVVM 中,如何用 ViewModel 控制焦点. 这焦点设置个东西嘛,有些争论.就是到底要不要用 ViewModel 来控制视图的键盘输入焦点.这里不讨论,假设你就是要通过 VM,设置 ...
- ,2,liunx命令格式
一.命令基本格式 ~用户的初始登录位置 /root 这个叫root用户的家目录,每个用户都有自己的家 超级用户的家是根目录,普通用户的家是home下的二级目录 :/home/uer1 pwd ...
- 第五章 consul key/value
1.key/value作用 动态修改配置文件 支持服务协同 建立leader选举 提供服务发现 集成健康检查 2.使用 2.1.查看全部key/value 说明: 使用?recurse参数来指定查看多 ...
- Python基础学习笔记(十二)文件I/O
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-files-io.html ▶ 键盘输入 注意raw_input函 ...
- 基于jQuery的H5调试条
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- Java内存区域和判断对象“死”“活”算法
转载自: http://www.cnblogs.com/aigongsi/archive/2012/04/06/2434771.html java与C,c++有很大的不同就是java语言开发者不需要关 ...
- iOS - UISwitch
前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UISwitch : UIControl <NSCoding> @a ...
- 2016中国APP分类排行榜参选入围产品公示
2016中国APP分类排行榜参选入围产品公示 由中国科学院<互联网周刊>.中国社会科学院信息化研究中心.eNet硅谷动力共同主办的2016中国APP分类排行榜发布暨颁奖晚宴即将举行.此 ...
- 学习笔记day5:inline inline-block block区别
1. block元素可以包含block元素和inline元素:但inline元素只能包含inline元素.要注意的是这个是个大概的说法,每个特定的元素能包含的元素也是特定的,所以具体到个别元素上,这条 ...
- (linux) 常用命令 干货
内容提要 1. 第一难度, 重要 梯队 (grep, awk, sed, find, ) 2. 第二常用, 重要 梯队 (ps, ls, date, fuser, netstat, kill) 3. ...