Appium环境配置笔记1--使用Maven解决包依赖
2015-01-08 15:21
441 查看
上一篇安装文档描述了在Appium环境配置时介绍了Maven的安装和配置,而事实上Maven对于使用Appium来说并不是必须的,它只是方便我们管理整个Java测试项目而已。
在此之前并没有用过Maven,百度百科给出的定义如下:
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个项目,该项目的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。
在初步使用的过程中Maven给我最大的印象是帮助我们很方便的解决了包依赖的问题,其办法是通过设置Maven的项目配置文件pom.xml实现的。实例如下:
[html]
view plaincopy
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>majcit.com</groupId>
<artifactId>AppiumDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>AppiumDemo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>LATEST</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
当我们往该文件上面添加一个dependency的session,然后ctrl+s保存的时候,Maven就会自动帮我们把需要的Jar包和对应的依赖包下载配置好。下载的位置就是安装文档里面配置的Maven的Repository路径。
![](https://img-blog.csdn.net/20140918233051798)
以上面pom.xml的hamcrest为例子,添加该session后,maven就会自动帮我们准备好相应的jar包,不需要我们手动去查找和安装,所以这一点是非常方便,也是用maven给我印象最深刻的一个地方。
![](https://img-blog.csdn.net/20140918233809286)
![](https://img-blog.csdn.net/20140918233645781)
这些包Maven安装好后我们就可以直接在代码中引用了,不需要特别的配置。
![](https://img-blog.csdn.net/20140918234339031)
最后提醒我们需要使用appium进行测试自动化,可千万要记得把appium对应的客户端给安装上,如使用的是java客户端,那么我们就记得在pom.xml里面添加以下的dependency就好了,切记切记:
[html]
view plaincopy
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>LATEST</version>
<scope>test</scope>
lt;/dependency>
Note:dependency里面各个选项的意思:
groupId,artifactId和version这个三组合标示依赖的具体工程,而且这个依赖工程必须是maven中心包管理范围内的。如果碰上非开源包,maven支持不了这个包,那么则有三种方法处理:
1.本地安装这个插件install plugin例如:
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声明的了
在此之前并没有用过Maven,百度百科给出的定义如下:
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个项目,该项目的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。
在初步使用的过程中Maven给我最大的印象是帮助我们很方便的解决了包依赖的问题,其办法是通过设置Maven的项目配置文件pom.xml实现的。实例如下:
[html]
view plaincopy
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>majcit.com</groupId>
<artifactId>AppiumDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>AppiumDemo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>LATEST</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
当我们往该文件上面添加一个dependency的session,然后ctrl+s保存的时候,Maven就会自动帮我们把需要的Jar包和对应的依赖包下载配置好。下载的位置就是安装文档里面配置的Maven的Repository路径。
以上面pom.xml的hamcrest为例子,添加该session后,maven就会自动帮我们准备好相应的jar包,不需要我们手动去查找和安装,所以这一点是非常方便,也是用maven给我印象最深刻的一个地方。
这些包Maven安装好后我们就可以直接在代码中引用了,不需要特别的配置。
最后提醒我们需要使用appium进行测试自动化,可千万要记得把appium对应的客户端给安装上,如使用的是java客户端,那么我们就记得在pom.xml里面添加以下的dependency就好了,切记切记:
[html]
view plaincopy
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>LATEST</version>
<scope>test</scope>
lt;/dependency>
Note: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声明的了
相关文章推荐
- Appium环境配置笔记1--使用Maven解决包依赖
- Appium环境配置笔记1--使用Maven解决包依赖
- [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件
- Maven3实战笔记环境配置与使用入门(一)
- idea使用maven配置下载镜像(解决依赖文件下载不动的问题)
- 解决maven工程中使用spring-boot后导致的profile多环境配置失效的问题
- Maven3实战笔记01环境配置与使用入门
- 解决IDEA中moduel配置了maven依赖可是依然不能使用依赖中的类
- mac 下配置maven环境( 包括android工程使用maven)
- Appium环境配置笔记2 -- Android SDK的路径不能有空格
- 使用Strusts框架就无法发布的问题解决——MyEclipse环境配置问题
- jbpm使用配置(spring+hibernate+maven项目环境)
- Tomcat启动时一闪而过,但是jdk环境变量配置正确,并使用java或者javac命令多可以运行,但是tomcat不能运行解决办法。
- maven环境配置及创建webapp使用教程
- 开篇之环境搭建JDK+Maven+Eclipse常用配置,Tomcat的内存溢出解决
- maven项目配置,不同环境使用不同参数
- 使用maven管理spring3.1.2 及spring mvc ,hibernate4.3.6集成开发的依赖环境
- ubuntu安装使用笔记06——maven安装配置
- eclipse 使用maven 自动解决开源maven项目依赖包问题
- maven: 开发、测试和生产环境使用不同的配置文件例子