【发布时间】:2015-03-08 00:39:23
【问题描述】:
我有一个使用 ant 构建的 android 库项目。一切正常,但我有一些我不想包含在生成的 jar 文件中的测试 java 文件,有人知道如何制作吗?
谢谢!
【问题讨论】:
我有一个使用 ant 构建的 android 库项目。一切正常,但我有一些我不想包含在生成的 jar 文件中的测试 java 文件,有人知道如何制作吗?
谢谢!
【问题讨论】:
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
【讨论】:
我终于在我的 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 文件
【讨论】: