如何从我的Android库构建目标中排除jar文件



我使用的是Android Studio,有几个应用程序依赖于相同的代码。我将共享代码移到了一个单独的库中,以便将其包含在我的应用程序中。

我为此目的创建的库项目(MyLib)需要一个jar文件来编译,所以我将其添加到项目的libs目录中。

MyLib主模块的build.gradle如下所示:

apply plugin: 'com.android.library'
android {
    compileSdkVersion 21
    buildToolsVersion "20.0.0"
    defaultConfig {
        applicationId "com.example.android"
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
        }
    }
}
dependencies {
    compile files('./libs/external-java-lib.jar')
}

当我构建项目时,gradle会生成一个包含external-java-lib.jar的jar文件。

我希望我的Android应用程序项目提供"外部java.lib.jar",而不是MyLib。因为在我的应用程序中,我可能会使用不同版本的external-java-lib.jar

如何配置Gradle以将external-java-lib.jar从库项目的构建中排除

我在网上找不到问题的答案,所以我觉得我想要的是一个糟糕的设计。我还能做什么?

提前谢谢。

我终于解决了我的问题。

在我的库项目中,我添加了另一个空的模块,并将external-java-lib.jar移到其libs文件夹中。

main模块的build.gradle中,我添加了依赖项:

dependencies {
    compile project(':libraries')     
}

我的目录结构现在是:

MyLibrary
├── build.gradle
├── gradle.properties
├── main
│   ├── build.gradle
│   └── src
│       └── main
│           ├── AndroidManifest.xml
│           ├── java ...
│           └── res  ...
├── libraries
│   ├── build.gradle
│   ├── libs
│   │   ├── external-lib-1.jar
│   │   └── external-lib-2.jar
│   └── src
│       └── main
│           ├── AndroidManifest.xml
│           ├── java ...
│           └── res  ...
└── settings.gradle

在我构建库之后,输出的aar包中没有external-java-lib.jar。所以,这正是我想要的。

如果您不使用proguard,则只需使用提供的标签

dependencies {
    provided files('./libs/external-java-lib.jar')
}

我不知道android studio,但它在eclipse中很容易,在eclipse中右键单击项目->属性->java构建路径,那里有库和java构建路径。在那里,您可以排除或包含文件。

最新更新