Gradle プラグイン(Java 用)の構成
どの DashO™ Gradle プラグイン(Java 用)を使用する場合にも、それらプラグインを含むアーティファクトを Gradle ビルド スクリプトのクラスパスへ追加し、使用したいプラグインを適用した後、環境に応じたプラグインを構成する必要があります。
プラグインの適用
3 つのプラグインはすべて 1 つの jar にまとめてパッケージ化されます。これによって Gradle ビルド スクリプトで利用できるようにします。 ビルド スクリプトに以下を追加します。
buildscript {
repositories {
flatDir dirs: "<DashO Home>/gradle"
}
dependencies {
classpath "com.preemptive:dasho:X.y.+"
}
}
apply plugin: 'com.preemptive.dasho' //または 'com.preemptive.dashoJar'、もしくは 'com.preemptive.dashoCustom'
<DashO Home>
を DashO のホーム パスに置き換えるか、環境変数またはパスを含む Gradle プロジェクト プロパティを参照します。
DashO ホームはプラットフォームによって異なります。
メモ:
<DashO Home>
を Windows 上の実際のパスに置き換える場合はスラッシュを使用します("C:\Program Files\..."
ではなく"C:/Program Files/..."
)。
プラグインの構成
Java 用の DashO Gradle プラグインは、dashOConfig
クロージャを使用して構成できます。
以下の設定はすべて省略可能(任意)です。
dashOHome
- これは適用されるプラグインに、DashO ホームを見つける場所を指示します。 ここで設定しない場合、この情報は環境変数か、またはDASHO_HOME
という Java プロパティによって提供する必要があります。doxFilename
- DashO 構成(.dox
)ファイルの名前。 既定値は "project.dox" です。includeAsInputs
- サポート ライブラリとしてではなく、入力として含める必要があるサポート ライブラリの名前。 この設定には、.jar
ファイルの一覧を指定します。 ここに挙げるファイルは、Gradle のコンパイル クラスパスの一部である必要があります。クラスパスの一部でない場合はエラーになります。maxHeap
- DashO を実行するときに使用する、最大ヒープ サイズを設定できます。 有効な単位はG
(ギガバイト)、M
(メガバイト)、K
(キロバイト)、およびB
(バイト)です。 単位が指定されていない場合は、メガバイトと見なされます。
この設定は、プラグインのバージョン 1.7 以降でのみ利用できます。 古いバージョンを使用している場合は、OutOfMemory に関するトラブルシューティングの解決方法を参照してください。verbose
- 適用されるプラグインに、--verbose
および--printStackTraces
引数を使って DashO を実行するよう指示します (既定値はfalse
)。 この設定は、プラグインのバージョン 2.3.4 以降でのみ利用できます。 また、これはバージョン 3.1.2 以降のプラグインでSHOW_DASHO_CMD
を有効にします。debug
- 適用されるプラグインに、--debug
引数を使って DashO を実行するよう指示します(既定値はfalse
)。 この設定は、プラグインのバージョン 3.2.0 以降でのみ利用できます。debug
を有効にすると、verbose
オプションも有効にします。例
適用されたプラグインは、入力と出力をdashOConfig { dashOHome = '<DashO Home>' doxFilename = 'project.dox' includeAsInputs = ['myLibrary.jar'] maxHeap = '512M' verbose = true debug = false }
User Properties
として DashO に渡します。プロジェクト ファイルでは、入力および出力の場所として、${gradleInput}
および${gradleOutput}
を使用する必要があります。 また、プラグインは、${gradleSupport}
内の必要なサポート jar ファイルも渡します。 詳細については、User Properties セクションを参照してください。
構成された出力の種類は、適用されているプラグインと一致している必要があります。
com.preemptive.dasho
- DashO での出力は、マージされたディレクトリになるよう構成されている必要があります。
メモ:このプラグインを使用すると、DashO の出力ディレクトリの内容は、DashO が実行される前に削除されます。
com.preemptive.dashoJar
- DashO での出力は、単一の jar ファイルになるよう構成されている必要があります。com.preemptive.dashoCustom
- DashO での出力は、使用するカスタム タスクで必要な出力と一致している必要があります。
メモ:DashO Gradle プラグイン(Java 用)は、DashO の実行時に Gradle 用に構成される同じバージョンの Java を使用します。 これは org.gradle.java.home 設定で構成されます。
保護の有効化
DashO Gradle プラグイン(Java 用)を適用する場合、適用されるプラグインに基づく Gradle プラグイン処理に統合されます。
com.preemptive.dasho
プラグイン 'java' が適用された(apply plugin: 'java'
)プロジェクトに、プラグイン 'com.preemptive.dasho' を適用(apply plugin: 'com.preemptive.dasho'
)すると、Gradle が Jar ファイルを作成する前に実行される obfuscate
タスクが追加されます。
jar ファイルには、保護されたクラスが含まれます。
gradlew jar
または gradlew build
を実行する場合、obfuscate
タスクが依存するので、そのタスクが実行されます。
com.preemptive.dashoJar
プラグイン 'java' が適用された(apply plugin: 'java'
)プロジェクトに、プラグイン 'com.preemptive.dashoJar' を適用(apply plugin: 'com.preemptive.dashoJar'
)すると、Gradle が Jar ファイルを作成した後に実行される obfuscateJar
タスクが追加されます。
保護された jar ファイルは、ビルド出力の obfuscated_libs
ディレクトリに置かれます。
gradlew obfuscateJar
は直接実行することはできますが、gradlew build
の一部としても実行します。
メモ:
gradlew jar
を実行するだけでは、obfuscateJar
タスクは実行しません。これはjar
タスクで必要とされないからです。
com.preemptive.dashoCustom
統合されたプラグインがお使いの環境で動作しない場合は、com.preemptive.dashoCustom
プラグインを使用し、提供されているタスク タイプを拡張することにより、DashO を利用する独自の Gradle タスクを作成することができます。
プラグイン 'java' が適用された(apply plugin: 'java'
)プロジェクトに、プラグイン 'com.preemptive.dashoCustom' を適用(apply plugin: 'com.preemptive.dashoCustom'
)すると、追加されるタスクはありません。
独自に定義する必要があります。
タスク タイプ
このカスタム プラグインは、2 つのタスク タイプを定義します。
DashODirTask
- 入力としてディレクトリを指定し、ディレクトリに出力します。メモ:DashO の出力ディレクトリの内容は、DashO が実行される前に削除されます。
DashOFileTask
- 入力として jar(または APK)ファイルを指定し、jar(または APK)ファイルに出力します。
DashO プロジェクトは、使用されているタスク タイプに基づいて、正しい出力の種類で構成する必要があります。
これらのタスクは、dashOConfig
を使用して、またはカスタム タスクの定義で直接構成できます。
カスタム タスクでは、入力および出力ファイル(またはディレクトリ)を指定する必要があります。
from
および to
を呼び出せば、DashO の ${gradleInput}
と ${gradleOutput}
が構成されます。
setSupportClasspath(classpath)
を呼び出すと、DashO の ${gradleSupport}
が構成されます。
オペレーティング システムの適切なパス区切り文字を使用して、標準の Java クラスパスのような classpath
文字列の書式を設定します。
addUserProperty(name, value)
を呼び出すことで、追加のユーザー プロパティを DashO に追加できます。
例
task myCustomDashOTask (type:DashODirTask) {
from("$MyInputDirectory")
from("$MyOtherInputDirectory")
to("$MyOutputDirectory")
setSupportClasspath("$MyClasspath")
addUserProperty("MyPropertyName", "MyValue")
addUserProperty("MyOtherPropertyName", "MyOtherValue")
}
DashO の実行確認
どのプラグインが適用されているかに関わらず、それらのタスクの実行時に、コンソールで PreEmptive Protection DashO for Android & Java vX.Y.Z
を見てください。
それが見られない場合は、トラブルシューティング セクションを参照してください。