- 浏览: 240123 次
- 性别:
- 来自: 武汉
最新评论
-
白天看黑夜:
Apache Mina Server 2.0 中文参考手册(带 ...
Apache Mina Server 2.0 中文参考手册 网上有PDF -
zerozone2011:
2017-01-04 17:05:26 Diet handle ...
JAVA多线程设计模式三 Guarded Suspension Pattern -
cuisuqiang:
<!-- 上面3个 import 为导入 CXF 的 ...
Apache CXF 与 Spring 整合简单例子 -
anmo_china:
还有一种方法就是将新版本的jar包引入到工程中,这样最简单
cxf2.4.3中jaxb-api.jar、jaxws-api.jar与jdk1.6.0_02不兼容问题 -
sendreams:
demo级的应用没什么问题,一部署到系统中,就可能会出异常。专 ...
Apache CXF 与 Spring 整合简单例子
这篇文章主要是关于maven2的两个配核心置文件的理解: pom.xml 和 setting.xml。
pom.xml位于创建的项目文件夹内,setting.xml位于 maven包 解压后 conf 文件夹内。
先来说说 settings.xml , settings.xml 对于 maven 来说相当于全局性的配置,用于所有的项目。在 maven2 中存在两个 settings.xml ,一个位于 maven2 的解压目录 conf 下面,作为全局性配置。对于团队设置,保持一致的定义是关键,所以 maven2/conf 下面的 settings.xml 就作为团队共同的配置文件,保证所有的团队成员都拥有相同的配置。当然对于每个成员,都需要特殊的自定义设置,如用户信息,所以另外一个 settings .xml 就作为本地配置。
settings.xml 基本结构如下:
<settings 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/xsd/settings-1.0.0.xsd”>
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
几个主要的、常用的配置因素:
1,localRepository :表 示本地库的保存位置,也就是 maven2 主要的 jar 保存位置,默认在 ${user.dir}/.m2/repository ,如需要另外设置,就换成其他的路径,如: :\repo 。
2,offline :如果不想每次编译,都去 查找远程中心库,那就设置为 true 。当然前提是你已经下载了必须的依赖包。
3,Servers : 在 POM 中的 distributionManagement 元素定义了开发库。然而,特定的 username 和 pwd 不能使用于 pom.xml ,所以通过此配置来保存 server 信息:
<servers>
<server>
<id>server001</id>
<username>guangyuan</username>
<password>my_password</password>
<privateKey>${usr.home}/.ssh/id_dsa</privateKey>
<passphrase>some_passphrase</passphrase>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration></configuration>
</server>
</servers>
id:server 的 id, 用于匹配 distributionManagement 库 id ,比较重要。
username, password: 用于登陆此服务器的用户名和密码
privateKey, passphrase :设置 private key ,以及 passphrase
filePermissions, directoryPermissions :当库文件或者目录创建后,需要使用权限进行访问。参照 unix 文件许可,如 664 和 775
4,Mirrors 表示镜像库,指定库的镜像,用于增加其他库:
<mirrors>
<mirror>
<id>tb_mirror</id>
<name>taobao mirror</name>
<url>http://downloads.planetmirror.com/pub/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
id,name: 唯一的标志,用于区别镜像
url: 镜像的 url
mirrorOf :此镜像指向的服务 id
5,Proxies 此代理设置,主要用于无法直接访问中心的库用户配置。
<proxies>
<proxy>
<id>myproxy</id>
<active>true</active>
<protocol>http</protocol>
<host>proxy.somewhere.com</host>
<port>8080</port>
<username>proxyuser</username>
<password>somepassword</password>
<nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts>
</proxy>
</proxies>
id: 代理的标志
active :是否激活代理
protocol, host, port:protocol://host:port 代理
username, password :用户名和密码
nonProxyHosts: 不需要代理的 host
6,repositories 和 pluginRepositories 定义其他开发库和插件开发库。对于团队来说,肯定有自己的开发库。可以通过此配置来定义。 如下的配置,定义了本地开发库,用于 release 发布。 pluginRepositories 的定义与 repositories 类似。
<repositories>
<repository>
<id>repo-local</id>
<name>Internal 开发库 </name>
<url>http://192.168.0.2:8082/repo-local</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<layout>default</layout>
</repository>
</repositories>
releases, snapshots: 每个产品的版本的 Release 或者 snapshot( 注: release 和 snapshot 的区别, release 一般是比较稳定的版本,而 snapshot 基本上不稳定,只是作为快照)。
关于setting.xml里的常用配置主要就是上面的这些了。事实上,在实际项目应用中,我们只需要重点理解这些配置的意思就足够了。但如果想自己开发一个项目,那么下面的这些配置说明就显得尤为重要了。
—————————————
关于pom.xml
文件的配置:
通过在
pom.xml
中定义
jar
包版本和依赖,能够方便的管理
jar
文件。
pom
作为项目对象模型。通过
xml
表示
maven
项目,使用
pom.xml
来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和
licenses
,项目的
url
,项目的依赖性,以及其他所有的项目相关因素。
xml 代码 :
常用元素的说明:
groupId:
项目或者组织的唯一标志,并且配置时生成的路径也是由此生成
artifactId:
项目的通用名称
version:
项目的版本
packaging:
打包的机制,如
pom, jar, maven-plugin, ejb, war, ear, rar, par
1
,maven
的继承定义:
假设定义了一个父项目:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.taobao</groupId>
<artifactId>taobao-parent</artifactId>
<version>2.0</version>
<packaging>pom</packaging>
</project>
packaging 类型需要pom ,用于parent 和合成多个项目。那么在其下的子项目中加上如下设置用以继承
<parent>
<groupId>com.taobao</groupId>
<artifactId> taobao-parent </artifactId>
<version>2.0</version>
</parent>
2
,合成(或者多个模块)
一个项目有多个模块,也叫做多重模块,或者合成项目。
如下定义:
<module>tc-client</module>
<module>tc-server</module>
</modules>
3, build
设置
主要用于编译设置,包括两个主要的元素,build
和
report
build
主要分为两部分,基本元素和扩展元素集合,
注意:包括项目build
和profile build
xml 代码
<project>
<build>…</build>
<profiles>
<profile>
<build>…</build>
</profile>
</profiles>
</project>
4,
插件
在build
时,执行的插件,比较有用的部分,如使用jdk 5.0
编译等等
xml 代码
<project>
<build>
…
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.0</version>
<extensions>false</extensions>
<inherited>true</inherited>
<configuration>
<classifier>test</classifier>
</configuration>
<dependencies>…</dependencies>
<executions>…</executions>
</plugin>
</plugins>
</build>
</project>
extensions: true or false
,是否装载插件扩展。默认
false
inherited: true or false
,是否此插件配置将会应用于poms
,那些继承于此的项目
configuration:
指定插件配置
dependencies:
插件需要依赖的包
executions:
用于配置execution
目标,一个插件可以有多个目标。
5, 资源(resources)
你项目中需要指定的资源。如spring 配置文件,log4j.properties
xml 代码
<project>
<build>
…
<resources>
<resource>
<targetPath>META-INF/plexus</targetPath>
<filtering>false</filtering>
<directory>${basedir}/src/main/plexus</directory>
<includes>
<include>configuration.xml</include>
<includes>
<excludes>
<exclude>**/*.properties</exclude>
<excludes>
</resource>
</resources>
<testResources>
…
</testResources>
…
</build>
</project>
resources: resource
的列表,用于包括所有的资源
targetPath:
指定目标路径,用于放置资源,用于
build
filtering:
是否替换资源中的属性
placehold
directory:
资源所在的位置
includes:
样式,包括那些资源
excludes:
排除的资源
testResources:
测试资源列表
6,
依赖关系:
xml
代码
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<type>jar</type>
<scope>test</scope>
<optional>true</optional>
</dependency>
…
</dependencies>
groupId, artifactId, version:
描述了依赖的项目唯一标志
可以通过以下方式进行安装:
使用以下的命令安装:
mvn install:install-file –Dfile=non-maven-proj.jar –DgroupId=some.group –DartifactId=non-maven-proj –Dversion=1
创建自己的库,
并配置,使用
deploy:deploy-file
设置此依赖范围为system
,定义一个系统路径。不提倡。
type:
相应的依赖产品包形式,如jar
,
war
scope:
用于限制相应的依赖范围,包括以下的几种变量:
compile
:默认范围,用于编译
provided
:类似于编译,但支持你期待jdk
或者容器提供,类似于
classpath
runtime:
在执行时,需要使用
test:
用于test
任务时使用
system:
需要外在提供相应得元素。通过systemPath
来取得
systemPath:
仅用于范围为system
。提供相应的路径
optional:
标注可选,当项目自身也是依赖时。用于连续依赖时使用
——————————-
到此,对maven2的两个核心配置文件的学习结束了。在下篇文章里将结合实际的项目具体谈到maven2在淘宝项目上的应用,敬请关注,谢谢!
学习笔记之maven2学习总结(2,进阶setting.xml与pom.xml) , 10.0 out of 10 based on 1 rating 转载务必注明出处Taobao QA Team
发表评论
-
新人解惑之—JUnit and SpringTest
2011-01-11 11:10 1317前几天看 UIC-TEST 代码时,顺便也研究了下 ... -
Spring在接口测试中的应用
2011-01-10 15:28 12891 引言 本文旨在 ... -
接口测试学习笔记之–配置POM和项目资源文件
2011-01-10 15:25 1418八、配置POM 在工程目录里,会有一个pom.xml文件,这 ... -
测试之灰盒测试
2011-01-10 15:22 1740测试分为三种:黑盒测试、白盒测试、灰盒测试。如果对 ... -
接口测试学习笔记之–生成eclipse项目、验证项目基础环境
2011-01-10 15:20 2202五、生成eclipse项目 继上篇笔记 上面2步做完后,接 ... -
接口测试学习笔记之–环境准备和工程创建
2011-01-10 15:20 1268一、java 基本上大家机 ... -
接口测试–Cruisecontrol和Clover配置详解
2011-01-10 15:19 16241 CruiseControl配置文件结 ... -
接口测试—持续集成与Cruisecontrol
2011-01-10 15:17 14081 持续集成概念引入 在没有应用持续集成之前,传统的开发模式 ... -
浅谈Eclipse+Maven+SubVersion+CruiseControl的团队开发测试
2011-01-10 15:12 1300对maven的介绍和使用在 ... -
关于Python(一、基础篇)
2011-01-10 15:07 4717好久没有看Python了, ... -
学习笔记之maven2学习总结(3,maven2在淘宝项目的应用)
2011-01-10 15:01 1473接下来,在前面两篇文章理解的基础上,我们来看下maven2 ... -
学习笔记之maven2学习总结(1,入门起步与实践)
2011-01-10 14:59 1031一,什么是 maven : Maven 是 ... -
为什么做接口测试
2011-01-05 22:16 5837一、为什么做接口测试 目前的BS结构的软件层 ...
相关推荐
在Maven的世界里,`pom.xml`和`settings.xml`是两个至关重要的配置文件,它们共同决定了Maven项目的构建过程和环境配置。`pom.xml`(Project Object Model)文件是每个Maven项目的核心,它包含了项目的基本信息、...
一、Idea关联的maven本地仓库配置文件settings.xml (1)必须使用默认文件名 D:\developsoft\javaweb\commonPlugins\maven\apache...pom-maven-springboot-CusConfigV2.xml pom-maven-spring-CusConfigV1不推荐使用.xml
用于maven setting.xml文件丢失,eclipse集成maven插件.m2下无setting.xml文件需要配置的情况
Maven的setting.xml下载
Maven是Java领域最流行的构建工具之一,其核心配置文件是Pom.xml。在Pom.xml文件中,我们可以定义项目的基本信息、依赖关系、构建过程、测试环境等。下面,我们将详细解析Pom.xml文件的各个标签和它们的作用。 1. ...
maven 连接阿里云仓库setting.xml配置
Maven通过一个叫做pom.xml的项目对象模型文件来配置项目构建的各个方面,其中标签是Maven构建配置的核心部分,它定义了整个构建生命周期中需要执行的指令和任务。 Maven构建包括编译代码、执行测试、打包以及部署等...
maven setting.xml 配置文件,maven依赖包资源阿里代理配置
maven的华为云镜像的setting.xml文件
本文将详细介绍如何配置Maven以使用Nexus作为本地中央仓库,以及涉及的主要配置文件`settings.xml`和`pom.xml`。 **一、Nexus简介** Nexus是Sonatype公司提供的一款开源的Maven仓库管理器,它能够作为Maven的代理...
改为使用国内的阿里镜像
maven的pom.xml的最详细配置,内含pom的依赖、jdk配置等
国内连接maven官方的仓库更新依赖,收集一些国内快速的maven仓库镜像以备用。 settings.xml配置好的国内私服,直接可以下载使用!
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
这是我配置阿里云的maven私服的setting.xml文件,MirroOf配置不是*号,是central,这样在项目pom中配置repository依然生效
settings.xml配置
maven pom.xml详解
当提到“覆盖重写”`conf/settings.xml`,通常是指在团队开发环境中,开发者需要根据个人或项目需求自定义`settings.xml`配置,这可能与全局的Maven配置不同。团队可能会在共享的构建服务器上提供一个`conf/settings...
pom.xml android maven 工程 如何拿Maven 构建 一个 Android 项目的pom配置
maven linux 安装时配置文件 settings.xml 配置阿里云镜像 使用时请修改本地仓库路径