《Maven实战》学习笔记(2)--POM简单设置

日期:2011-12-10

点击:191

来源: hanqunfeng

分享至:

基本信息:

4.0.0 :Maven3固定不变

com.netqin.framework :定义项目隶属于哪个组,是一个实际的项目

frame-core :项目模块名称

jar :打包方式,默认jar,可以配置war,pom(聚合项目)

0.0.1-SNAPSHOT:项目版本

netqin foamework core :项目一个比较易读的名称

http://maven.apache.org/frame-core :项目访问地址

聚合项目:

4.0.0

com.netqin.framework

frame-framework

0.0.1-SNAPSHOT

pom

netqin foamework

http://maven.apache.org

frame-core

frame-service

子模块:

4.0.0 :无论聚合项目还是子项目,都必须包含该配置

frame-framework

com.netqin.framework

0.0.1-SNAPSHOT

frame-core:其余属性默认与父模块相同

jar

netqin foamework core

frame-core:生成的包的名称

聚合和子模块都可以配置如下内容:

1.属性

UTF-8

2.依赖

spring

spring-core

1.0.2:以上三项为必填项,version在子模块继承时可以不用声明

jar:依赖类型,默认为jar,对应于项目的packaging,一般不用声明

compile:依赖范围,默认compile,编译、测试、运行都有效,比如spring-core

true:可选依赖,既只对当前项目有效,不会传递给子模块

:排除依赖,既排除掉当前依赖下对应依赖包,既项目编译时不会导入该依赖包,可以在下面声明一个高级版本进行替换

com.test.demo

demo-core

com.test.demo

demo-core

1.0.2:换个高级版本

jar

compile

junit

junit

4.10

jar

test:只对测试范围有效,比如Junit。

另外还可配置provided:编译和测试有效,运行无效,比如servlet-api。

runtime:测试和运行时有效。

import:导入其它pom中的,该元素只在中可以使用,如下内容介绍。

dependencies:会被子模块继承,如果不希望子模块继承,可以使用如下配置:

junit

junit

${juint.version}

jar

test

org.springframework

spring-core

${springframework.version}

jar

compile

org.test

test

1.0.0version>

pom:只能是pom

import:将该坐标对应的聚合项目中的合并到当前的中来

:被该元素包裹起来的依赖不会被子模块继承,

如果子模块中要使用,需要在dependencies中声明,但这时可以之生命groupId和artifactId,比如:

3.插件

maven-clean-plugin

2.4.1

default-clean

clean:绑定clean生命周期

clean:绑定clean生命周期的clean目标

上述配置,子模块也会继承,类似,如果不希望子模块继承,可以如下配置:

org.apache.maven.plugins

maven-source-plugin

2.1.2

子模块只要如下配置即可:

org.apache.maven.plugins

maven-source-plugin

插件需要绑定到某个生命周期才可以使用

依赖项目命令:

1.查看当前项目的已解析依赖,类似于eclipse的pom查看器中的Dependency Hierarchy的右侧视图

mvn dependency:list

2.查看当前项目的已解析依赖,类似于eclipse的pom查看器中的Dependency Hierarchy的左侧视图

mvn dependency:tree

3.查看项目使用了但是依赖没有声明,或者是声明了没有使用

mvn dependency:analyze

比如,没有使用到spring-core,但是项目中声明了

[WARNING] Unused declared dependencies found:
[WARNING] org.springframework:spring-core:jar:3.0.6.RELEASE:compile
Tags: