android - 如何触发 Gradle 上的最小任务以运行 apt 插件

标签 android gradle annotations annotation-processing android-apt

我正在创建一个编译时注释处理器来在 Android 上生成一些代码。

为了触发注释处理器,我使用了 android-apt来自 hvisser 的插件 https://bitbucket.org/hvisser/android-apt/overview

目前,在我对 Processor extends AbstractProcessor 所做的每一次更改中我必须运行一个完整的 /.gradlew clean build查看结果,这是一个缓慢的过程,即使对于一个很小的示例项目也是如此。

所以我的问题是,有没有 gradlew tasks我可以用来触发注释处理器吗?

我当前的输出 ./gradlew tasks是:

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

Android tasks
-------------
androidDependencies - Displays the Android dependencies of the project.
signingReport - Displays the signing info for each variant.

Build tasks
-----------
assemble - Assembles the outputs of this project.
assembleAndroidTest - Assembles all the Test applications.
assembleDebug - Assembles all Debug builds.
assembleDebugAndroidTest - Assembles the android (on device) tests for the Debug build.
assembleRelease - Assembles all Release builds.
build - Assembles and tests this project.
buildDependents - Assembles and tests this project and all projects that depend on it.
buildNeeded - Assembles and tests this project and all projects it depends on.
classes - Assembles classes 'main'.
clean - Deletes the build directory.
compileDebugAndroidTestSources
compileDebugSources
compileDebugUnitTestSources
compileReleaseSources
compileReleaseUnitTestSources
jar - Assembles a jar archive containing the main classes.
mockableAndroidJar - Creates a version of android.jar that's suitable for unit tests.
testClasses - Assembles classes 'test'.

Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]

Documentation tasks
-------------------
javadoc - Generates Javadoc API documentation for the main source code.

Help tasks
----------
components - Displays the components produced by root project 'Decorator'. [incubating]
dependencies - Displays all dependencies declared in root project 'Decorator'.
dependencyInsight - Displays the insight into a specific dependency in root project 'Decorator'.
help - Displays a help message.
projects - Displays the sub-projects of root project 'Decorator'.
properties - Displays the properties of root project 'Decorator'.
tasks - Displays the tasks runnable from root project 'Decorator' (some of the displayed tasks may belong to subprojects).

Install tasks
-------------
installDebug - Installs the Debug build.
installDebugAndroidTest - Installs the android (on device) tests for the Debug build.
uninstallAll - Uninstall all applications.
uninstallDebug - Uninstalls the Debug build.
uninstallDebugAndroidTest - Uninstalls the android (on device) tests for the Debug build.
uninstallRelease - Uninstalls the Release build.

Verification tasks
------------------
check - Runs all checks.
connectedAndroidTest - Installs and runs instrumentation tests for all flavors on connected devices.
connectedAndroidTestDebug - Installs and runs the tests for Debug build on connected devices.
connectedCheck - Runs all device checks on currently connected devices.
deviceAndroidTest - Installs and runs instrumentation tests using all Device Providers.
deviceCheck - Runs all device checks using Device Providers and Test Servers.
lint - Runs lint on all variants.
lintDebug - Runs lint on the Debug build.
lintRelease - Runs lint on the Release build.
test - Runs the unit tests.
testDebug - Run unit tests for the debug build.
testRelease - Run unit tests for the release build.

Other tasks
-----------
jarDebugClasses
jarReleaseClasses

最佳答案

编译时会生成源代码。所以运行gradlew cleanCompileDebugSources compileDebugSources是你需要的。这与您 make 时运行的 Android Studio 相同。您的项目来自 build菜单。

如果您正在开发注释处理器作为项目的一部分,您可以使用 processor android-apt 中的选项无需打包您的处理器项目。这是假设您的处理器模块为 apt project(':myprocessor')依赖(compile 也可以)。

apt {
    processor "my.class.name"
}

关于android - 如何触发 Gradle 上的最小任务以运行 apt 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31539646/

相关文章:

android - Android Studio:Gradle同步失败:无法HEAD '…'。从服务器收到状态码502:错误的网关

java - Gradle 2.13连接了错误的JRE

android - Glide 库 java.lang.NoClassDefFoundError

java - @JoinTable 使用导入键代替主键

java - 这个在 Spring 中处理 POST 请求的 REST 方法到底是如何工作的?

android - 通过手机浏览器检索 IMEI 号码/sim 号码/手机号码

Android:键入时保持 TextInputEditText 在 View 中

java - 无效响应

java - 运行时类路径中是否需要注解类文件?

android - Android-onCreate中的finish()行为不一致