どの 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 12.5.0 vX.Y.Z を見てください。 それが見られない場合は、トラブルシューティング セクションを参照してください。
ライセンスの構成
DashO で使用されるライセンスを構成する必要がある場合は、Gradle プロジェクト プロパティ DASHO_LICENSE、Java システム プロパティ、または環境変数でライセンス文字列を指定できます。 これは、DashO Gradle プラグイン v5.0.0 以降でサポートされます。
Gradle プロジェクト プロパティは、gradle.properties ファイル内、コマンド ラインで -P 引数として(例:-PDASHO_LICENSE={key[:email]})、または、ORG_GRADLE_PROJECT_ を先頭に付けたシステム環境変数で設定できます(例:ORG_GRADLE_PROJECT_DASHO_LICENSE={key[:email]})。 Java プロパティはコマンド ラインで -D 引数として設定できます(例:-DDASHO_LICENSE={key[:email]})。