Android开发、测试持续集成环境Jenkins搭建

拈花ヽ惹草 提交于 2019-11-30 05:07:44
传统java项目开发都会利用maven、ant在hudson、jenkins中持续集成,开发、测试、每日构建,保证代码质量。maven默认不支持android,但是我们可以利用 maven-android-plugin插件来让maven支持android。

环境

  • jdk 1.6及以上
  • Android sdk(r21及以上),最好是最高版本,最好也安装一下ndk
  • Maven 3.0.3及以上,貌似3.1.0不好使,最好使用3.0.5版 设置ANDROID_HOME环境变量,将$ANDROID_HOME/tools、$ANDROID_HOME/platform-tools加入到环境变量中

测试环境

下载示例程序,通过跑这些程序,可以检测环境是否OK,并且下载maven需要的jar包。 示例程序

使用Maven进行Android开发

新建Maven Android项目

具体命令参考 此处

手动创建Maven Android项目

有些是历史项目,也可以手动将其改成maven项目,方法如下:
  1. 新建pom.xml文件,拷贝其他maven项目的也可。
  2. 修改<groupId>,<artifactId>,<name>
  3. 修改<version>,默认是<version>0.1.0-SNAPSHOT</version>
  4. 增加android jar包依赖:
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>1.5_r4</version>
        <scope>provided</scope>
    </dependency>
    可在此处查看android所有版本 5. 在android-maven-plugin配置中,配置android platform的版本,如<platform>7</platform>6. 可以删除build.xml、build.properties、bin和libs。 7. 打apk包mvn clean install,将apk包安装到设备中mvn android:deploy
示例pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
    <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>

       <parent>
          <groupId>com.yeetrack</groupId>
          <artifactId>parent</artifactId>
          <version>1.0-SNAPSHOT</version>
       </parent>

       <properties>     
           <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>       
           <maven.compiler.encoding>utf-8</maven.compiler.encoding>
          <platform.version>4.1.1.4</platform.version>
          <android.plugin.version>3.6.0</android.plugin.version>
       </properties>

       <groupId>com.yeetrack</groupId>
       <artifactId>app</artifactId>
       <version>1.0-SNAPSHOT</version>
       <packaging>apk</packaging>
       <name>app</name>

       <dependencies>
          <dependency>
             <groupId>com.google.android</groupId>
             <artifactId>android</artifactId>
             <version>4.1.1.4</version>
             <scope>provided</scope>
          </dependency>

          <dependency>
               <groupId>com.google.android</groupId>
               <artifactId>support-v4</artifactId>
               <version>r7</version>
        </dependency>

     </dependencies>

<!-- 配置pmd、findbugs -->
<reporting>
<plugins>
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>findbugs-maven-plugin</artifactId>
    <version>2.5</version>
    <configuration>  
                <xmlOutput>true</xmlOutput>  
                <effort>Max</effort>  
            </configuration>  
  </plugin>
</plugins>
 
<build>
    <finalName>${project.artifactId}</finalName>
    <sourceDirectory>src</sourceDirectory>

    <plugins>
        <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>android-maven-plugin</artifactId>
                    <version>3.6.1</version>
                    <configuration>
                            <sdk><platform>16</platform></sdk>
                            <manifest>
                                <debuggable>true</debuggable>
                            </manifest>
                    </configuration>
                    <!--<executions>
                            <execution>
                                <goals>
                                        <goal>ndk-build</goal>
                                </goals>
                    <configuration>

                                        <attachNativeArtifacts>true</attachNativeArtifacts>
                                </configuration>
                            </execution>
                    </executions>-->
                    <extensions>true</extensions>
                </plugin>

        </plugins>
    </build>
 

使用Maven进行Android单元测试

继续阅读→

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!