[maven] 使用问题及思考汇总
2016-03-30 12:11
525 查看
(1)Maven坐标
例子:
(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坐标可以唯一标识一个项目,包含四个元素 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构建多模块项目
在Eclipse中创建Maven多模块工程的例子相关文章推荐
- 2016.3.29 360c++ 研发编程第二题
- A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS
- 设计模式开发中的备忘录模式在iOS应用开发中的运用实例
- spring4整合hibernate5.1
- jquery插件资源
- squid源码分析4—coss存储机制分析
- 软件项目管理见解
- 在DWZ框架中整合kindeditor复文本框控件
- JS 实现 startWith endWith函数
- 杂谈:云吞和包子
- Windows之Xmanager连接linux打开Oracle视图操作
- l.ExecException: Process 'command 'C:\Java\jdk1.8.0_45\bin\java.exe'' 错误
- 用正则表达式汇总
- SQL索引一步到位(
- 微信支付:H5吊起支付API,不显示“确认支付、输入密码”界面
- PHP的Memcache扩展的安装和使用
- Mac快捷键大全
- MMBFJ175 不同厂家,不可随意更换的分析
- 链表基本操作复习
- squid源码分析3—purge流程分析