IDEA+maven+Android

来源:互联网 发布:男士单肩包推荐 知乎 编辑:程序博客网 时间:2024/05/17 08:06

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