我在我的android项目中使用maven,以及android maven插件。在project 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 centralhere上。
但是,我不是用android 4.1.1.4构建的,而是用4.2.2r2构建的,它的声明如下:
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>4.2.2_r2</version>
</dependency>
这个工件不在maven central上,我使用maven-android-sdk-deployer将android工件推送到我的repo中。
如果我打开我的终端,用maven构建,就没有问题了。问题是当我将项目导入intellij并尝试构建时。模块设置(正确)抱怨viewpagerindicator apklib模块中android 4.1.1.4依赖项的路径已断开。
我检查了android 4.1.1.4jar的.m2/repository文件夹,甚至没有文件夹,这意味着maven从未下载过它。我猜这与maven android插件在使用maven构建时的工作方式以及intellij的构建方式有关。
我知道我可以自己动手抓取jar并部署它,但我正在寻找更好的解决方案,因此我的团队中的新成员只需要抓取源代码,而不需要做任何其他事情来构建项目。我已经为团队设置了nexus,所以我们不必一直手动部署第三方jar,也不必在每个人的机器上运行sdk部署程序。我只想把源代码交给一个新的开发人员,他们就可以用它运行。
最佳答案
它的工作方式非常适合我们(结合Maven Android SDK部署程序:
<dependency>
<groupId>com.viewpagerindicator</groupId>
<artifactId>library</artifactId>
<version>${viewpagerindicator.version}</version>
<type>apklib</type>
<exclusions>
<exclusion>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.android</groupId>
<artifactId>support-v4</artifactId>
</exclusion>
</exclusions>
</dependency>
我们也在和IntelliJ一起建设。通常只需打开pom.xml文件并对“您想将其作为项目打开吗?”提示。