设为首页 收藏本站
查看: 992|回复: 0

[经验分享] 使用Jenkins进行android项目的自动构建(2)

[复制链接]

尚未签到

发表于 2018-1-7 21:46:31 | 显示全部楼层 |阅读模式
<?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>
  
<groupId>com.example.demo</groupId>
  
<artifactId>maven-demo</artifactId>
  
<version>1.0.0</version>
  
<packaging>apk</packaging>
  

  
<dependencies>
  
<!-- 加入android依赖,scope=provided -->
  
<dependency>
  
<groupId>com.google.android</groupId>
  
<artifactId>android</artifactId>
  
<version>4.1.1.4</version>
  
<scope>provided</scope>
  
</dependency>
  
<!-- 加入android项目依赖,type=apklib -->
  
<!-- 如果是android library形式的依赖,需使用这种,使用前需要将项目打包成apklib并上传到仓库 -->
  
<!-- 如果使用maven打包library依赖,pom.xml需改用 <packaging>apklib</packaging> ,并用install命令上传 -->
  
<dependency>
  
<groupId>com.example.demo</groupId>
  
<artifactId>android-framework</artifactId>
  
<version>1.0.0</version>
  
<type>apklib</type>
  
</dependency>
  
<!-- 加入facebook依赖,type=aar -->
  
<dependency>
  
<groupId>fr.avianey</groupId>
  
<artifactId>facebook-android-api</artifactId>
  
<version>3.8.0</version>
  
<type>aar</type>
  
</dependency>
  
<!-- 加入android support依赖 -->
  
<dependency>
  
<groupId>com.google.android</groupId>
  
<artifactId>support-v4</artifactId>
  
<version>r7</version>
  
</dependency>
  
<!-- 加入junit依赖,scope=test -->
  
<dependency>
  
<groupId>junit</groupId>
  
<artifactId>junit</artifactId>
  
<version>4.11</version>
  
<scope>test</scope>
  
</dependency>
  
</dependencies>
  

  
<properties>
  
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  
<maven.build.timestamp.format>yyyy-MM-dd-HH-mm-ss</maven.build.timestamp.format><!-- 增加一个时间戳的属性,生成的apk名可以加入该属性 -->
  
</properties>
  

  
<profiles>
  
<profile>
  
<id>dev</id>
  
<properties>
  
<package.type>dev</package.type><!-- 增加一个包类型的属性,mvn命令以参数-P传入,生成的apk名可以加入该属性 -->
  
</properties>
  
<build>
  
<!-- 打包后替换apk中的指定文件 -->
  
<!--
  
<resources>
  
<resource>
  
<directory>res\values\dev</directory>
  
<targetPath>config</targetPath>
  
<includes>
  
<include>strings.*</include>
  
</includes>
  
</resource>
  
<resource>
  
<directory>res\layout</directory>
  
<filtering>true</filtering>
  
<includes>
  
<include>*.*</include>
  
</includes>
  
</resource>
  
</resources>
  
-->
  
</build>
  
</profile>
  

  
<profile>
  
<id>prod</id>
  
<properties>
  
<package.type>prod</package.type><!-- 增加一个包类型的属性,mvn命令以参数-P传入,生成的apk名可以加入该属性 -->
  
</properties>
  
<build><!--
  
<resources>
  
<resource>
  
<directory>res\values\prod</directory>
  
<targetPath>config</targetPath>
  
<includes>
  
<include>*.*</include>
  
</includes>
  
</resource>
  
</resources>-->
  
</build>
  
</profile>
  
</profiles>
  

  
<build>
  
<sourceDirectory>src</sourceDirectory><!-- 源代码目录 -->
  
<testSourceDirectory>test</testSourceDirectory><!-- 测试代码目录 -->
  
<finalName>${project.artifactId}_${project.version}_${package.type}_${maven.build.timestamp}</finalName><!-- 生成的apk文件名 -->
  
<plugins>
  
<!-- android-maven-plugin,打包apk -->
  
<plugin>
  
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
  
<artifactId>android-maven-plugin</artifactId>
  
<version>3.8.2</version>
  
<configuration>
  
<sdk>
  
<platform>19</platform>
  
<!--
  
<path>D:\adt-bundle\sdk</path>
  
-->
  
</sdk>
  
<!-- "false"执行代码混淆 -->
  
<proguard>
  
<skip>false</skip><!--
  
<config>proguard.cfg</config>
  
<jvmArguments>
  
<jvmArgument>-Xms256m</jvmArgument>
  
<jvmArgument>-Xmx512m</jvmArgument>
  
</jvmArguments>-->
  
</proguard>
  
<deleteConflictingFiles>true</deleteConflictingFiles>
  
<undeployBeforeDeploy>true</undeployBeforeDeploy>
  
<sign>
  
<debug>false</debug><!-- 生成未签名的apk -->
  
</sign>
  
</configuration>
  
<extensions>true</extensions>
  
<inherited>true</inherited>
  
</plugin>
  
<!-- maven-jarsigner-plugin,用于创建签名 -->
  
<plugin>
  
<groupId>org.apache.maven.plugins</groupId>
  
<artifactId>maven-jarsigner-plugin</artifactId>
  
<version>1.3.2</version>
  
<executions>
  
<execution>
  
<id>signing</id>
  
<goals>
  
<goal>sign</goal>
  
</goals>
  
<phase>package</phase>
  
<inherited>true</inherited>
  
<configuration>
  
<removeExistingSignatures>true</removeExistingSignatures>
  
<archiveDirectory></archiveDirectory>
  
<!-- SF 和 RSA的文件名 -->
  
<sigfile>CERT</sigfile>
  
<!-- 用于签名的apk(貌似这一项不起作用) -->
  
<includes>
  
<include>${project.artifactId}_${project.version}_${package.type}_${maven.build.timestamp}.apk</include>
  
</includes>
  
<keystore>D:\keys\key.store</keystore><!-- keystore位置 -->
  
<storepass>123456</storepass><!-- store密码 -->
  
<keypass>123456</keypass><!-- key密码-->
  
<alias>maven_demo</alias><!-- alias -->
  
<verbose>false</verbose><!-- 是否输出过程讯息 -->
  
<!-- 指定加密算法 -->
  
<arguments>
  
<argument>-sigalg</argument><argument>MD5withRSA</argument>
  
<argument>-digestalg</argument><argument>SHA1</argument>
  
</arguments>
  
</configuration>
  
</execution>
  
</executions>
  
</plugin>
  

  
<plugin>
  
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
  
<artifactId>maven-android-plugin</artifactId>
  
<version>2.8.4</version>
  
<inherited>true</inherited>
  
<configuration>
  
<sign>
  
<debug>false</debug>
  
</sign>
  
<!-- zipalign对齐优化 -->
  
<zipalign>
  
<verbose>false</verbose>
  
<inputApk>target\${project.artifactId}_${project.version}_${package.type}_${maven.build.timestamp}.apk</inputApk>
  
<outputApk>target\${project.artifactId}_${project.version}_${package.type}_${maven.build.timestamp}-aligned.apk</outputApk>
  
</zipalign>
  
</configuration>
  
<executions>
  
<execution>
  
<id>alignApk</id>
  
<phase>package</phase>
  
<goals>
  
<goal>zipalign</goal>
  
</goals>
  
</execution>
  
</executions>
  
</plugin>
  

  
<!-- jacoco plugin检查测试代码覆盖率 -->
  
<plugin>
  
<groupId>org.jacoco</groupId>
  
<artifactId>jacoco-maven-plugin</artifactId>
  
<version>0.7.1.201405082137</version>
  
<executions>
  
<!-- prepare agent for measuring integration tests -->
  
<execution>
  
<id>jacoco-initialize</id>
  
<goals>
  
<goal>prepare-agent</goal>
  
</goals>
  
</execution>
  
<execution>
  
<id>jacoco-site</id>
  
<phase>post-integration-test</phase>
  
<goals>
  
<goal>report</goal>
  
</goals>
  
</execution>
  
</executions>
  
</plugin>
  
</plugins>
  
</build>
  

  
<!-- 生成测试代码覆盖率报告 -->
  
<reporting>
  
<plugins>
  
<plugin>
  
<groupId>org.jacoco</groupId>
  
<artifactId>jacoco-maven-plugin</artifactId>
  
<version>0.7.1.201405082137</version>
  
<reportSets>
  
<reportSet>
  
<reports>
  
<report>report</report>
  
</reports>
  
</reportSet>
  
</reportSets>
  
</plugin>
  
</plugins>
  
</reporting>
  
</project>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432740-1-1.html 上篇帖子: Jenkins随笔(四)常用插件 下篇帖子: Jenkins的安装过程(Windows)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表