问题一:项目中要把第三方支付sdk版本升级,并把sdk独立出一个单独的aar文件,开始直接打了一个aar包,主工程里仍然保留着对sdk 的jar包依赖,明显这样不太合理,不符合aar独立的目的,但是把依赖去掉以后,运行时会报会无法找到sdk jar包中的类。
问题二:解压aar包看到aar中没有sdk,jar 包 文件,像在android项目结构中一样在library项目里加入libs,放入jar包,但是maven默认的源码目录只有src目录,各种百度,最后还是在github上看到android-maven-plugin插件的项目,在项目中test目录下有各种pom文件,其中有builder-helper-maven-plugin 插件的使用,好了找到钥匙;
问题三:配置了pom之后,因为有了jar 包,感觉可以去掉原来的maven依赖了,但是去掉以后library编译时也会报引用不到jar包的类(是不是还没配好?);添加依赖,打aar包,解压可以看到libs目录及jar包,maven本地安装aar,主项目去掉jar 包依赖,运行正常。
- pom文件
<build> <sourceDirectory>${basedir}/src</sourceDirectory> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.9.0-rc.2</version> <extensions>true</extensions> <configuration> <sdk> <platform>23</platform> </sdk> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.11</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${basedir}/libs/org.apache.commons.io.jar</source> </sources> </configuration> </execution> </executions> </plugin> </plugins> </build>
builder-helper-maven-plugin可以为项目添加额外的source,resources,artifacts(这个是依赖其他项目?),具体可以后面专门看一下文档
com.simpligility.maven.plugin:android-maven-plugin和这里com.jayway.maven.plugins.android.generations:android-maven-plugin的区别