问题描述
我正在创建一个编译时注释处理器来在 Android 上生成一些代码.
I'm creating a compile-time annotation processor to generate some code on Android.
为了触发注释处理器,我使用了来自 hvisser android-apt 插件nofollow">https://bitbucket.org/hvisser/android-apt/overview
To trigger the annotation processor I'm using the android-apt
plugin from hvisser https://bitbucket.org/hvisser/android-apt/overview
目前,在我对 Processor extends AbstractProcessor
所做的每一次更改中,我都必须运行完整的 /.gradlew clean build
以查看结果,那就是即使对于一个很小的示例项目,过程也有点缓慢.
At the moment, on every change I do on my Processor extends AbstractProcessor
I have to run a full /.gradlew clean build
to see the results, and that is kinda of a slow process, even for a tiny sample project.
所以我的问题是,是否有任何 gradlew 任务
可以用来触发注释处理器?
So my question, is there any of the gradlew tasks
I could use to trigger the annotation processor?
我当前 ./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
就是你所需要的.这与当您从 build
菜单make
项目时运行的 Android Studio 相同.
Source generation happens when you compile. So running gradlew cleanCompileDebugSources compileDebugSources
is what you need. This is the same was what Android Studio is running when you make
your project from the build
menu.
如果您将注解处理器作为项目的一部分进行开发,则可以使用 android-apt
中的 processor
选项,而无需打包处理器项目.这假设您将处理器模块作为 apt project(':myprocessor')
依赖项(compile
也可以使用).
If you are developing your annotation processor as part of your project, you can use the processor
option in android-apt
without needing to package your processor project. This is assuming you have your processor module as a apt project(':myprocessor')
dependency (compile
will also work).
apt {
processor "my.class.name"
}
这篇关于如何在 Gradle 上触发最小任务来运行 apt 插件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!