2016-11-30 11 views
8

私は、展開コマンドを実行するときにソースとターゲットのパスが正しく設定されていることを確認しようとしています。 (仮定Gradleでは、コンソール/イベントログにメッセージを出力する方法は?

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; 
} 

コンソールのいくつかの並べ替え、またはAndroid Studioのイベントログに上記targetProjDir文字列変数を表示するにはどのような方法があります:
http://eppz.eu/blog/unity-android-plugin-tutorial-2/からコピー:)

は、以下の例を参照してください。それはコンソールの名前です)?

+0

私はちょうどそれを考え出した、not notこれまで「Gradle Console」を使用していました。シンプルな 'printf 'あなたの文字列はここにあります..."はそのトリックをするようです。 – bigp

+0

^それは、「アセンブル...」、「ビルド...」、「デプロイ...」のいずれかのコマンドを実行するたびに2度続けて印刷されるようです。重複したプリントを引き起こす原因は何ですか? – bigp

+0

'System.out.println(message);' –

答えて

8

グレースクリプトはGroovy言語で書かれています。あなた自身のメッセージをコンソールに記録することは可能です。

プロジェクトのごGradleのバージョン3.2.1またはを超えている場合は、標準出力にメッセージを書き込むことで、ビルドファイル内のロギングのための簡単なオプションがあります。 Gradleは、標準出力に書き込まれたものをログシステムにリダイレクトします。

println 'A message which is logged at QUIET level' 

Gradleのロギングシステムは、私たちは、複数のログレベル(ライフサイクル、QUIET、INFO、DEBUG)にメッセージをログに記録することができます

詳細な研究のためのリンクの下に通過してください

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

+1

'println'はロギングフレームワークをログに記録せず、' System.out.println(String) 'メソッドに転送するメソッドです。これは、特定のログレベルだけではなく、常に印刷されます。 – JBirdVegas

+0

groovyの 'println'メソッドのリファレンス:http://docs.groovy-lang.org/latest/html/api/groovy/lang/Script.html#println() – JBirdVegas

+0

Gradleバージョン3.2のリリースノート.1。 –

-9
Log.d("TAG", "Your message here"); 
+0

動作していないようです。「com.android.build.gradle.internal.api.LibraryVariantImpl型のオブジェクトの「不明なプロパティ」ログを取得できませんでした。 ' 'Log'が認識されるために必要なことについてあなたの答えを詳しく説明できますか? – bigp

+3

これは 'Gradle'ではなく' Android'でログインするためのものです。 – JBirdVegas

17

Gradleはロギングフレームワークを利用しています。あなたはそれにメッセージを記録することができます。デフォルトでは、ログレベルlifecycle以上が表示されますが、debuginfoなどの他のレベルでログできます。デバッグレベルでログインする

ライフサイクルレベルでログインする

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

gradle --info可視ビルドおよび下部)INFOレベルでログインする

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

を(可視はgradle --debug以下を使用して構築します) (デフォルトで表示されます)

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

何も設定せずに何かを記録したいだけなら、@JbirdVegasが示唆するように、 'project.logger.lifecycle( '私のメッセージはデフォルトで表示')'を使用してください。 * Gradle console *タブでログを表示できます。 – vovahost

関連する問題