我正在从一个使用Android插件的Maven项目中构建一个android应用程序。在这个项目中,我使用了新的beta数据绑定库。
它包含在Android的本地m2repository中( in /android/m2存储库)。此存储库中的库打包为aar类型。
我可以这样在我的pom中添加依赖项:
<dependency>
<groupId>com.android.databinding</groupId>
<artifactId>library</artifactId>
<version>1.0-rc1</version>
<type>aar</type>
</dependency>这似乎是可行的,但是构建失败了:
未能在项目演示中执行目标:无法解决项目com.simpligility.android: demo: apk:1.0.0:未能找到com.android.support:support-v4:jar:21.0.3在file:///Users/eppleton/Java Libraries/android-sdk-macosx/extras/android/m2repository中缓存在本地存储库中,在android外部的更新间隔已经过去或更新被迫-> Help 1之前,不会重新尝试解析
在这个本地存储库中没有支持-v4:jar,这是正确的,因为API版本20支持-v4:aar。
有没有办法让maven寻找aar而不是jar?
P.s.:对于我自己的本地构建,我有几个解决方案(例如,将其重新打包为jar),但我更喜欢一个更通用的解决方案,因为我希望在maven原型中共享配置,而且我不想要求用户做大量的手工工作。现在,这是我拥有的最好的解决方案:
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-v4</artifactId>
<version>21.0.3</version>
<scope>system</scope>
<systemPath>${android.sdk.path}/extras/android/support/v4/android-support-v4.jar</systemPath>
</dependency>但这并不是真正好的,传递依赖解决,因为aar会好得多。
发布于 2015-08-15 08:37:26
好了找到解决办法了。我可以排除依赖项,并将其直接添加为‘aar’类型:
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-v4</artifactId>
<version>21.0.3</version>
<type>aar</type>
</dependency>
<dependency>
<groupId>com.android.databinding</groupId>
<artifactId>library</artifactId>
<version>1.0-rc1</version>
<type>aar</type>
<exclusions>
<exclusion>
<groupId>com.android.support</groupId>
<artifactId>support-v4</artifactId>
</exclusion>
</exclusions>
</dependency>https://stackoverflow.com/questions/32022842
复制相似问题