IDEA+maven+Android

step1 搭建Maven环境



step2 配置本地仓库


配置Maven仓库,在maven/conf/setting.xml中设置,如:

?
1
< localRepository >E:/m2/repository</ localRepository >

Maven仓库

分为本地仓库和远程仓库

本地仓库是远程仓库的一个子集,需要依赖库时,会先从本地获取,本地没有再从远程取。

可以用nexus搭建本地仓库服务器,便于管理,共享依赖库,无需每个项目成员都从远程获取依赖库。


step3 配置IDEA-Maven


IDEA中setting-maven配置maven-home位置,检查setting file、local repository


step4 在项目中添加Maven support


为项目添加maven支持,右键点击项目Add Framework Support...,选择maven,项目结构发生变化,并自动创建了pom.xml


step5 设置项目pom.xml


在pom.xml中设置groupId、artifactId、version


step6 添加第三方依赖库


为项目添加依赖库:

对本地module的依赖可以直接按alt-enter - add dependency来添加依赖;

而第三方的lib需要添加依赖库,例如在pom.xml中添加support-v4库:

?
1
2
3
4
5
6
7
< dependencies >
     < dependency >
         < groupId >com.google.android</ groupId >
         < artifactId >support-v4</ artifactId >
         < version >r7</ version >
     </ dependency >
</ dependencies >

在maven projects窗口下点击刷新,就看到新加的dependency了


step7 添加android依赖库

在pom.xml中添加android依赖库

?
1
2
3
4
5
6
7
< dependency >
     <!-- android 4x from the central repository-->
     < groupId >com.google.android</ groupId >
     < artifactId >android</ artifactId >
     < version >4.0.1.2</ version >
     < scope >provided</ scope >
</ dependency >

可以在maven搜索库中下载到,并放到m2相对应的目录下

http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.google.android%22%20AND%20a%3A%22android%22

也可以直接在run maven build时自动下载,但速度比较慢


step8 配置setting的android sdk路径

在setting中配置android sdk

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
< profiles >
     < profile >
         < id >android</ id >
         < properties >
             < android.sdk.path >
                 E:\Android\android-sdk <!-- 此处为自己sdk路径 -->
             </ android.sdk.path >
         </ properties >
     </ profile >
</ profiles >
 
< activeProfiles > <!--make the profile active all the time -->
     < activeProfile >android</ activeProfile >
</ activeProfiles >


step9 添加maven-android-plugin

在pom.xml中添加plugin

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
< 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.3.0</ version >
             < configuration >
                 < sdk >
                     < platform >16</ platform >
                 </ sdk >
                 < manifest >
                     < debuggable >true</ debuggable >
                 </ manifest >
             </ configuration >
             < extensions >true</ extensions >
         </ plugin >
     </ plugins >
</ build >

手动下载地址:

http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.jayway.maven.plugins.android.generation2%22

依然是放到m2相应目录


step10 start build

在IDEA中打开Maven Projects窗口,刷新,可以开始运行build脚本了

第二部分

1. 多模块的依赖设置


假设A依赖B,BD依赖C,C依赖E...如此复杂的依赖关系,一定要注意设置packaging标签,作为lib的module要设置为apklib,只有主项目设置为apk!


并且在作为dependency时也都要设置type标签,否则会产生各种错误,比如找不到类。


例子:略


2. 解决调试时的R类冲突



如果target和gen下的R.java等类文件冲突(重复定义),则设置target为Excluded Folder(Project Structure中F12)


3. Android.jar



我把每个module都加上android的dependency,并设置<scope>provided</scope>,就不会出现找不到android类的错误了。


4. 打包



lib项目可以在clean compile package后,install到本地依赖库,deploy提交到依赖库服务器,这样依赖此模块的项目可以不需要导入这个module,只需设置好dependency就会将lib项目源码自动生成到gen-external-apklibs文件夹中!


5. 未生成gen-external-apklibs的问题



之前从老项目转成Maven项目时会遇到,可能是项目配置中还是用module依赖的方式,如果module从项目中去掉了,也不会生成这个文件夹。


这时,你可以把那个项目或模块单独打开,就会自动生成;也可以在MavenProjects视图中把已经去除的(灰色的)module删除,再刷新下maven projects就会自动生成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值