如何在Android上排除Ivy依赖的特定部分

时间:2013-07-22 15:05:58

标签: android scala ivy apache-kafka

我正在使用将使用Kafka的Android应用。它有很多依赖,所以我决定使用Ivy来管理它们(虽然我之前从未使用它,而且我对Apache的东西一般都没有经验)。

我的问题是Kafka的依赖项之一snappy-java有一个“本机”文件夹,包含用于linux,mac和windows的本机库,Android正在抛出错误The library 'snappy-java-1.0.4.1.jar' contains native libraries that will not run on the device.如果我只是包括手动库,我会拿出snappy-java jar,从源代码重新编译它而没有native文件夹,然后把它放回到项目中。由于Ivy是自动构建它,我想我必须通过ivy.xml文件来完成它,但我不确定如何。

我正在尝试直接从依赖项中排除该文件夹:

    <dependency org="org.xerial.snappy" name="snappy-java" rev="1.0.4.1" conf="compile->default(compile)">
        <exclude org="org.xerial.snappy" module="snappy-java/native" name="*" type="*" ext="*" matcher="exact"/>
    </dependency>

但这并没有改变任何事情。我查看了<exclude>上的常春藤文档,似乎更多的是排除传递依赖关系或排除整个模块。是否有可能更具体?

似乎可能有一种方法可以通过在snappy-java的常春藤文件中弄乱<conf><artifact>来实现,但我也无法让它工作,并且我认为Ivy无论如何都会自动生成这些文件。谁能指出我正确的方向?提前谢谢。

0 个答案:

没有答案