使用ant编译android库时排除java文件

时间:2015-01-09 16:22:19

标签: android ant build

我有一个使用ant构建的android库项目。一切正常,但我有一些测试java文件,我不想包含在生成的jar文件中,有人知道如何制作吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

Android Studio / Gradle允许您指定要从构建中排除的类;在Android Studio中,您可以通过编辑build.gradle文件并添加自定义SourceSet来排除类。像这样:

android
{
    compileSdkVersion 20
    buildToolsVersion "20.0.4"

    defaultConfig
    {
        minSdkVersion 19
        targetSdkVersion 19
        packageName "org.google.home"
        testPackageName "org.google.home.test"
    }
    sourceSets
    {
        main
        {
            java
            {
                exclude '**/ClassToExclude.java'
            }
        }
        androidTest
        {
            java
            {
                exclude '**/TestforClassToExclude.java'
            }
        }
    }
}

如上所示,您可以排除测试文件(位于项目测试目录中)和标准源文件。

修改

对于ant,您可以使用类似的东西,称为fileset,因此请指定应从构建中排除的文件。用户手册有一个很好的部分,描述了如何完成此任务: https://ant.apache.org/manual/Types/fileset.html

ant还提供了<exclude>标记,您可以使用该标记指定要排除的文件:

<exclude name="**/dir_name_to_exclude/**" />

还有一篇讨论类似问题的stackoverflow帖子:How to exclude a directory from ant fileset, based on directories contents

答案 1 :(得分:0)

我终于在我的android项目的build.xml中添加了以下行:

<target name="-post-compile">
    <jar destfile="bin/myLibrary.jar">
        <zipfileset src="bin/classes.jar" excludes="com/my/package** com/something/unittest/**"/>
    </jar>
</target>

这将删除不需要的文件并更新jar文件