Maven Android使用一

摘要:
Maven坐标包括:groupId、artifactId、版本、打包和分类器。GroupId:定义当前Maven项目所属的实际项目;ArtifactId:在实际项目中定义maven项目(模块);版本:定义当前模板;打包:定义maven项目的打包方法;依赖性对应元素Dependencies是负数量的依赖性,

 Maven的坐标包括:groupId、artifactId、version、packaging、classifier。

groupId:定义当前maven项目隶属的实际项目;

artifactId:定义实际项目中的一个maven项目(模块);

version:定义当前所处的模板;

packaging:定义maven项目的打包方式;

 

依赖对应的元素Dependencies是dependency的负数形式,非常形象,它可以包含一个或者多个dependency。依赖也有它的一组子元素:

groupId、artifactId、version:依赖的基本坐标;

type:依赖的类型

scope:依赖的范围,用来控制依赖于编译classpath、测试classpath、运行classpath的关系,有compile、test、provided、runtime、import。

依赖是可传递的,如A->B,B->C,那么A->C。传递性依赖简化了依赖管理,但在带来好处的同时也给项目带来了很多隐性的依赖,也就是我们平时总会遇到的依赖冲突,经常需要排除依赖(exclusions)。   

排查依赖最常用到的就是mvn dependency:tree命令,将当前项目的依赖树打出来查看。搜索发生冲突的依赖,排除其中多个依赖只留下唯一一个。

 

 类似java的继承思想,抽取重复的配置,消除重复。Parent元素声明父模块,parent下的子元素groupId、artifactId、version定位父模块坐标。 

Maven创建的Lib项目

<?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.meibu</groupId>

  <artifactId>MeibuLoginActivity</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>apklib</packaging>//添加下面的build //plugins 就可以设置打包方式apk和apklib

  <name>MeibuLoginActivity</name>

 

  <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

     <platform.version>2.2.1</platform.version>

     <android.plugin.version>3.6.0</android.plugin.version>

  </properties>

 

  <dependencies>

     <dependency>

       <groupId>com.google.android</groupId>

       <artifactId>android</artifactId>

       <version>${platform.version}</version>//代表上面properties中的<platform.version>可以写成2.2.1等等

       <scope>provided</scope>

     </dependency>

     <dependency>//依赖apklib关系 其中的version是你lib中的设置的版本例如0.0.1-SNAPSHOT

       <groupId>com.meibu</groupId>

       <artifactId>MeibuBaseActivity</artifactId>

       <version>0.0.1-SNAPSHOT</version>

       <type>apklib</type>

     </dependency>

  </dependencies>

 

  <build>

     <plugins>

       <plugin>

       <groupId>com.jayway.maven.plugins.android.generation2</groupId>

         <artifactId>android-maven-plugin</artifactId>

         <version>${android.plugin.version}</version>//表示打包插件的版本号就是上面properties 中的<android.plugin.version>可以直接写里面的数字

         <extensions>true</extensions>

         <configuration>

            <sdk>

              <platform>8</platform>

            </sdk>

         </configuration>

       </plugin>

     </plugins>

  </build>

</project>

创建Maven项目打包apk 依赖2个lib包,下面这个是配置文件,部分说明参考上面pom文件

<?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.meibu</groupId>

  <artifactId>MeibuTest</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>apk</packaging>

 

  <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

     <platform.version>2.2.1</platform.version>

     <android.plugin.version>3.6.0</android.plugin.version>

  </properties>

 

  <dependencies>

     <dependency>

       <groupId>com.google.android</groupId>

       <artifactId>android</artifactId>

       <version>${platform.version}</version>

       <scope>provided</scope>

     </dependency>

     <dependency>

       <groupId>com.meibu</groupId>

       <artifactId>MeibuBaseActivity</artifactId>

       <version>0.0.1-SNAPSHOT</version>

       <type>apklib</type>

     </dependency>

     <dependency>

       <groupId>com.meibu</groupId>

       <artifactId>MeibuLoginActivity</artifactId>

       <version>0.0.1-SNAPSHOT</version>

       <type>apklib</type>

     </dependency>

  </dependencies>

 

  <build>

     <plugins>

       <plugin>

       <groupId>com.jayway.maven.plugins.android.generation2</groupId>

         <artifactId>android-maven-plugin</artifactId>

         <version>${android.plugin.version}</version>

         <extensions>true</extensions>

         <configuration>

            <sdk>

              <platform>8</platform>

            </sdk>

         </configuration>

       </plugin>

     </plugins>

  </build>

</project>

最外层的pom文件

<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>com.meibu.bulidsource</groupId>

  <artifactId>com.meibu.bulidsource</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>pom</packaging>

  <name>oa-modules</name>

         <url>http://cserver.com.cn</url>

         <modules>

                  <module>com.meibu.preparesource</module>//表示加载的模块

                   <module>MeibuTest</module>//表示加载的模块

         </modules>

</project>

他们的顺序就是他们的先后依赖关系

打包中的打包信息乱码问题 设置project.build.sourceEncoding

  <properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

     <platform.version>2.2.1</platform.version>

  <android.plugin.version>3.6.0</android.plugin.version>

  </properties>

免责声明:文章转载自《Maven Android使用一》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何快速重置OUTLOOK2013,2016到初始配置状态,outlook 修改数据文件位置Swift Realm 完整使用记录下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Hbase之批量数据写入

/** * Created by similarface on 16/8/16. */ import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import...

【转载】Linux系统下源代码包方式安装PHP开发环境

########节选自《细说PHP》################ 2.2 Linux系统下源代码包方式安装环境 在Linux平台下安装PHP有几种方法:使用配置和编译过程,或是使用各种预编译的包。在Linux上安装软件,用户最好的选择是下载源代码包,并编译一个适合自己的版本。LAMP组合中每个成员都是开源的软件,都可以从各自的官方网站上免费下载安装程序...

lamp安装教程

LAMP环境配置安装注意安装步骤及说明事项。 Linux + apache+mysql+php 附件: 1. 访问ftp报错 解决: 关闭selinux vi /etc/selinux/config 内容修改为: selinux=disable 之后重启reboot。 下图分别为selinux关闭前 和 关闭后: 2. 依赖软件查询 http://rp...

apache(一)

1.linux下apache安装 ######不安装依赖会报错 ######checking for APR... no ######configure: error: APR not found . Please read the documentation wget http://archive.apache.org/dist/apr/apr-1.5....

httpclient4例子

参考:http://hc.apache.org/httpclient-3.x/tutorial.html importorg.apache.http.HttpEntity; importorg.apache.http.client.methods.CloseableHttpResponse; importorg.apache.http.client.me...

如何在Ubuntu 20.04上安装Apache ZooKeeper

ZooKeeper是Apache软件基金会的一个软件项目,它提供了一个用于构建分布式应用的高性能共享数据服务。它被一个集群用来维护共享数据,并采用强大的同步技术。它提供了一个简单的接口,用于管理配置信息、命名、分布式同步和提供组服务。在本文中,我们将向您展示如何在Ubuntu 20.04服务器上安装Apache ZooKeeper。先决条件一台运行Ubun...