温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Appium环境配置笔记1--使用Maven解决包依赖

发布时间:2020-07-28 09:46:22 来源:网络 阅读:365 作者:zhukev 栏目:开发技术

上一篇安装文档描述了在Appium环境配置时介绍了Maven的安装和配置,而事实上Maven对于使用Appium来说并不是必须的,它只是方便我们管理整个Java测试项目而已。

在此之前并没有用过Maven,百度百科给出的定义如下:

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个项目,该项目的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。

在初步使用的过程中Maven给我最大的印象是帮助我们很方便的解决了包依赖的问题,其办法是通过设置Maven的项目配置文件pom.xml实现的。实例如下:

<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路径。

Appium环境配置笔记1--使用Maven解决包依赖

以上面pom.xml的hamcrest为例子,添加该session后,maven就会自动帮我们准备好相应的jar包,不需要我们手动去查找和安装,所以这一点是非常方便,也是用maven给我印象最深刻的一个地方。

Appium环境配置笔记1--使用Maven解决包依赖

Appium环境配置笔记1--使用Maven解决包依赖

这些包Maven安装好后我们就可以直接在代码中引用了,不需要特别的配置。

Appium环境配置笔记1--使用Maven解决包依赖

最后提醒我们需要使用appium进行测试自动化,可千万要记得把appium对应的客户端给安装上,如使用的是java客户端,那么我们就记得在pom.xml里面添加以下的dependency就好了,切记切记:

    <dependency> 		<groupId>io.appium</groupId> 		<artifactId>java-client</artifactId> 		<version>LATEST</version> 		<scope>test</scope> 	</dependency>

Note:dependency里面各个选项的意思:

groupIdartifactIdversion这个三组合标示依赖的具体工程,而且这个依赖工程必须是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声明的了


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI