In Gradle, how to print out a message in the console / Event Log?

戏子无情 提交于 2019-12-04 09:52:00

问题


I'm trying to verify that my source and target paths are properly setup when I execute a deploy command.

See the example below:
(copied from: http://eppz.eu/blog/unity-android-plugin-tutorial-2/)

android.libraryVariants.all { variant ->
    // Task names.
    String variantName = "${variant.name.capitalize()}"; // Like 'Debug'
    String deployTaskGroup = "plugin";
    String deployTaskName = "deploy${variantName}PluginArchive"; // Like 'deployDebugPluginArchive'
    String dependencyTaskName = "assemble${variantName}"; // Like 'assembleDebug'
    // Source.
    String sourceAARFolder = "${buildDir.getPath()}/outputs/aar/";
    String sourceAARName = "${project.name}-${variant.name}.aar";
    // Target.
    String targetAssetFolder = "Assets/Plugins/My Plugin";
    String targetAARFolder = "${rootDir.getPath()}/../../${targetAssetFolder}"; // Navigate into 'Assets'
    String targetAARName = "My Plugin Android.aar"; // The form you ship your plugin

    String targetProjDir = System.env.UNITY_PROJECT; // <-- Need to confirm this line!
    //Log.i(targetProjDir); //??????????? something like this?

    // Create task.
    task(deployTaskName, dependsOn: dependencyTaskName, type: Copy) {
        from(sourceAARFolder)
        into(targetAARFolder)
        include(sourceAARName)
        rename(sourceAARName, targetAARName)
    }.group = deployTaskGroup;
}

Is there any way to display the above targetProjDir string variable to some sort of console, or the Event Log in Android Studio (assuming that is it's console's name)?


回答1:


Gradle utilizes a logging framework. You can log messages to that. By default, only log level lifecycle and above are shown, but you can log at other levels such as debug and info.

To log at debug level (visible with builds using gradle --debug or lower)

project.logger.debug('my debug message')

To log at info level (visible with gradle --info builds and lower)

project.logger.info('my info message')

To log at lifecycle level (visible by default)

project.logger.lifecycle('my message visible by default')



回答2:


Gradle scripts are written in Groovy language. It is possible to log into console your own messages.

If your Gradle version of your project is 3.2.1 or above then there is a simple option for logging in your build file which is to write messages to standard output. Gradle redirects anything written to standard output to it's logging system.

Example

println 'A message which is logged at QUIET level'

Gradle logging system allows us to log message into multiple log levels (LIFECYCLE, QUIET, INFO, DEBUG )

Please go through below link for detailed study

https://docs.gradle.org/current/userguide/logging.html



来源:https://stackoverflow.com/questions/40878923/in-gradle-how-to-print-out-a-message-in-the-console-event-log

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!