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项目

  xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd”>

  4.0.0

  com.meibu

  MeibuLoginActivity

  0.0.1-SNAPSHOT

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

  MeibuLoginActivity

 

UTF-8</project.build.sourceEncoding>

     2.2.1</platform.version>

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

 

 

    

       com.google.android

       android

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

       provided

    

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

       com.meibu

       MeibuBaseActivity

       0.0.1-SNAPSHOT

       apklib

    

 

 

    

      

       com.jayway.maven.plugins.android.generation2

         android-maven-plugin

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

         true

        

           

              8

           

        

      

    

 

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

  xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&#8221;>

  4.0.0

  com.meibu

  MeibuTest

  0.0.1-SNAPSHOT

  apk

 

UTF-8</project.build.sourceEncoding>

     2.2.1</platform.version>

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

 

 

    

       com.google.android

       android

       ${platform.version}

       provided

    

    

       com.meibu

       MeibuBaseActivity

       0.0.1-SNAPSHOT

       apklib

    

    

       com.meibu

       MeibuLoginActivity

       0.0.1-SNAPSHOT

       apklib

    

 

 

    

      

       com.jayway.maven.plugins.android.generation2

         android-maven-plugin

         ${android.plugin.version}

         true

        

           

              8

           

        

      

    

 

最外层的pom文件

4.0.0

com.meibu.bulidsource

com.meibu.bulidsource

0.0.1-SNAPSHOT

pom

oa-modules

http://cserver.com.cn

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

MeibuTest//表示加载的模块

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

 

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

 

UTF-8</project.build.sourceEncoding>

     2.2.1</platform.version>

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