没有合适的资源?快使用搜索试试~ 我知道了~
首页maven Pom详解.pdf
资源详情
资源评论
资源推荐
Pom 详解
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion><!--maven2.0 必须是这样写,现在是
maven2 唯一支持的版本-->
<!-- The Basics -->
<groupId>...</groupId> <!--指定组名,例如:
org.apache.maven-->
<artifactId>...</artifactId> <!--指定工程名例如:
appfuse-->
<version>...</version> <!--指定版本号
<packaging>...</packaging> <!--The current core packaging
values are: pom, jar, maven-plugin, ejb, war, ear, rar, par-->
<classifier>...</classifier> <!--projects are displayed
as groupId:artifactId:packaging:classifier:version-->
<name>...</name> <!--一些无关太重要的东西,用户描述你的项目的
名字,可选的-->
<url>...</url> <!--暂时不知何物,貌似无关重要,只是写明开发团队
的网站,可选的-->
<!--
这里有些东西暂时不谈-->
<dependencies>...</dependencies> <!--例
子: <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<type>jar</type>
<scope>test</scope>
<optional>true</optional>
</dependency>
groupId,artifactId 和 version 这个三组合标示依赖的具体工程,而且
这个依赖工程必须是 maven 中心包管理范围内的。如果碰上非开源包,maven 支
持不了这个包,那么则有三种方法处理:1.本地安装这个插件 install plugin
例如:
mvn install:install-file -Dfile=non-maven-proj.jar
-DgroupId=some.group -DartifactId=non-maven-proj -Dversion=1
2.创建自己的 Repositories 并且部署这个包,使用类似上面的
deploy:deploy-file 命令 3.设置 scope 为 system,并且指定系统路径
dependency里面的classifier,用于区 分从同一个pom编译出来的但是内
容不同的同名包,例如同一个工程编译出两个artifact,一个支持jdk1.5 一个
支持jdk1.4,那么就可以使 用这个来命名为jdk15 和jdk14 来区分,它如果出现
在包名中,那么它必须跟在版本号后。还有一种情况是将一个工程的一些次要
artifact附到主 要artifact中,就可以使用这个来区分,例如一个工程产生
source,javadoc,class三种东西,那么就可以使用不同的 classifier来分别
标识这些东西
dependency里面的type,默认为jar,类型,常用如:jar,ejb-client,
test-jar,可以设置plugins中的extensions值为true后在增加新类型
dependency里面的scope,指定 classpath,可以为:compile(默认的,
compile scope在所有classpaths内有效,这些dependencies将会传播到项目中。
provided:指示jdk或者某个容器可以提供他,它 只在compilation和test的
classpaths有效,而且不会传播的。runtime:指示这个dependency在编译过程
是不必要 的,但是执行需要,在test和runtime的classpaths有效,在compile
的classpaths无效。test:指示这个 dependency在一般程序运行是无效的,但
是在test的compilation和execution是有效的,system则跟provided 类似,但
是这种dependency必须人工明确地制定。这种依赖不会在repository中查找。
dependency里面的systemPath:只在dependency的scope声明为system的时
候才有用除,否则,build的过程将会失败。路径必须是绝对的,所以最好使用
property来声明机器的特定路径。
dependency里面的optional:如果工程本身是一个dependency那么就标记为
optional,例如X需要A,A需要B,那么X只需要optional的B,则B在X中就是
optional声明的了
dependency里面的exclusions:如果X需要 A,A包含B依赖,那么X可以声
明不要B依赖,只要在exclusions中声明exclusion。optional是不会install或
者使用B, 而exclusion是将B从依赖树中是删除。例如appfuse不想使用
hibernate,但是appfuse是集成hibernate的,所以就排 除掉:
<exclusions>
<exclusion>
<groupId>org.appfuse</groupId>
<artifactId>appfuse-hibernate</artifactId>
</exclusion>
</exclusions>-->
<!--Inheritance:如果一个工程是pareent或者aggregation(即mutil-module
的)的,那么必须在 packaging赋值pom。child工程从parent继承的包括:
dependencies,developers and contributors,plugin lists,reports lists,
plugin execution with matching ids,plugin configuration-->
<parent>...</parent> <!--参照下面例子:relativePath是可选的,
maven会首先搜索这个地址,在搜索本地和远程repositories之前
<parent>
<groupId>org.codehaus.mojo</groupId>
<artifactId>my-parent</artifactId>
<version>2.0</version>
<relativePath>../my-parent</relativePath>
</parent>
-->
<dependencyManagement>...</dependencyManagem
ent>
<!--用于帮助管理children的dependencies。例如如果parent使用
dependencyManagement定义一个 dependencyon junit:junit:4.0,那么它的
children就可以只引用groupId和artifactId,而version就可以通过parent 来
设置。好处就是集中管理依赖详情-->
<modules>...</modules><!--对于多模块project,outer-module没有必要考虑
inner-module的dependencies,当列出modules的时候。modules的顺序是不重要
的,因为maven会自动根据依赖关系 来拓扑排序,modules例子:
<module>my-project<module>
<module>another-project<module>
-->
<properties>...</properties> <!--参照
http://www.blogjava.net/jianyue/articles/maven2_setting.html,是一样的
-->
<!-- Build Settings --><build>...</build> <!--
剩余14页未读,继续阅读
sefeifei99
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0