我在我的 Android 项目中使用 Maven,以及 android-maven-plugin。在我的项目 pom.xml 文件中,我像这样声明依赖项:
<dependency>
<groupId>com.viewpagerindicator</groupId>
<artifactId>library</artifactId>
<version>2.4.1</version>
<type>apklib</type>
</dependency>
ViewPagerIndicator 依赖于 Android 4.1.1.4,它位于此处的 Maven Central 上。但是,我不是使用 Android 4.1.1.4 构建的,而是基于 4.2.2 r2 构建的,它的声明如下:
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>4.2.2_r2</version>
</dependency>
这个工件不在 Maven Central 上,我正在使用maven-android-sdk-deployer将 Android 工件推送到我的仓库中。
如果我打开终端并使用 maven 构建,则没有问题。问题是当我将项目导入 IntelliJ 并尝试构建时。模块设置(正确)抱怨 ViewPagerIndicator apklib 模块中 Android 4.1.1.4 依赖项的路径已损坏。
我检查了我的 .m2/repository 文件夹中的 Android 4.1.1.4 jar,甚至没有文件夹,这意味着 Maven 从未下载过它。我猜这与使用 Maven 构建时 maven-android-plugin 的工作方式与 IntelliJ 的构建方式有关。
我知道我可以自己抓取 jar 并自行部署,但我正在寻找更好的解决方案,因此我团队中的新成员只需要抓取源代码而无需执行其他任何操作来构建项目。我已经为团队设置了 Nexus,因此我们不必继续手动部署第三方 jar,并在每个人的机器上运行 sdk 部署程序。我希望能够将源代码交给新的开发人员,他们就可以使用它运行。