問題タブ [gradle-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gradle - Gradle タスクからの出力ファイルの追跡 (および削除)
Google の protobuf-gradle-plugin を使用すると、多数の proto ファイル入力に基づいて複数のファイルが生成される可能性があります。タスクを実行するときは、出力がどうなるかをアプリオリに判断するのではなく、出力されたすべてのファイルを確認することしかできません。
問題は、プロジェクトをクリーンアップするときです。Gradle は からアクセスできる出力ファイルを追跡しているようですAbstractTask.getOutputs().getPreviousFiles()
。これはGradleの内部であるため、信頼できるとは思えません。すべての出力ファイルを削除したい場合、これを行う最善の方法は何ですか?
1 つの可能性は、出力フォルダーをビルド ディレクトリに制限することです。これを削除すると、生成されたすべてのファイルが削除されます。
もう 1 つは、作成されたすべてのファイルを追跡する出力ディレクトリにマニフェストを作成することです。これにより、何を削除するかがわかります。
ここで何が提案されていますか?
java - カスタム プラグイン拡張機能内のネストされたオブジェクト
カスタム Gradle プラグインを開発しており、次のような構成クロージャー (プラグイン拡張) を定義したいと考えています。
私はこのクラスを持っています:
そして、プラグイン プロジェクトでは、次の方法で拡張機能を作成します。
しかし、私のクライアント プロジェクトでは、上記のようにプラグインを適用して構成すると、次のエラーが発生します。
Gradle DSL メソッドが見つかりません: 'property2()'
クラスでproperty2
クロージャを定義するにはどうすればよいですか?MyPluginExtension
編集
私はこれを試しました:
しかし、今、私はこのエラーが発生します:
Gradle DSL メソッドが見つかりません: a1()
ネストされたクロージャ フィールドを解決できません。
liquibase - Liquibase Gradle プラグイン -> updateSQL コマンド
Liquibase Gradle プラグインを使用する gradle プロジェクトをセットアップしました。
liquibase の出力で説明されている機能を使用しようとしています
私がgradle updateSQLを実行すると、基本的にタスクは端末のすべての変更を出力します(これを使用して、「gradle updateSQL > changes.sql」のようなコマンドの出力を入れてみますが、これには後で実行できないものも含まれます。更新だけでなく、すべての変更が含まれています)。
コマンド updateCountSql を使用しようとしています (説明には「次の変更セットを STDOUT に適用するための SQL を記述します」と書かれています)。 Liquibase updateCountSql コマンドには値が必要です")、どのように機能するか知っている人はいますか?
データベースの変更を追跡し、すべての変更を含むスクリプトを作成できるようにする必要があるだけです。
前もって感謝します。
groovy - 動的オブジェクトのグループを使用して gradle プラグイン拡張機能を構成する正しい方法
私は独自の gradle プラグインを作成しようとしていますが、一連のオブジェクトを構成できるようにする必要があります。これらのオブジェクトの数とそれらが何と呼ばれるかは、ユーザー次第です。
高度なカスタマイズ機能を備えたカスタム gradle プラグインを作成するための doco は非常に貧弱です。この種のことを行う方法について言及していますproject.container()
が、私のユースケースで機能させる方法がわかりませんでした。
これは私のプラグインの構成 DSL の例です。
そして、これは私がそれを設定できるようにする私のプラグイン拡張オブジェクトです:
標準的な方法でプラグインに接続された拡張機能:
これは問題なく動作しますが、典型的な gradle DSL のスタイルではなく、かなり醜い構成スタイルです。
プラグイン構成の DSL を次のように変更するにはどうすればよいですか。
java - app:preDexDebug 例外が、Java ライブラリ プロジェクトを含めると、Android Studio でのデバッグ起動時に発生する
Androidスタジオで非常に奇妙な問題が発生し、デバッグセッションを開始しようとしたときにのみ以下の例外が発生しましたが、プロジェクトは正常にコンパイルされます.
この時点で、アプリ プロジェクトは非常に基本的な 1 つのアクティビティ プロジェクト (ウィザードで作成) です。
プロジェクトには外部 Java ライブラリが含まれており、それ自体は問題なくコンパイルされます。クリーン/リビルドを行うと、期待どおりにすべてがクリーンアップされ、完全にコンパイルされます。例外が発生したときに、ライブラリを含めてデバッグセッションを実行しようとした場合にのみ発生します。
依存関係として Java ライブラリを削除すると、プロジェクトは正常に起動します
--stacktrace/--debug で実行してみましたが、役に立たない情報がありました。
バージョン情報: ビルド ツール: 23.0.0 Android スタジオ 1.4 Gradle プラグイン 1.3.1 Gradle 2.2.1
この同じ Java ライブラリ
を使用して、古い Android プロジェクトへの依存関係として追加すると、すべてが正常に機能するため、新しいプロジェクト セットアップ ウィザード/作成で問題が発生します。
誰かがこれに遭遇しましたか、またはAndroidプロジェクトにJavaライブラリを追加するときに何か特別なことをする必要がありますか.
FAILURE: ビルドは例外で失敗しました。
問題: タスク ':app:preDexDebug' の実行に失敗しました。
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' が終了しましたゼロ終了値 1
試してみてください: --info または --debug オプションを指定して実行し、より多くのログ出力を取得してください。
例外: org.gradle.api.tasks.TaskExecutionException: タスク ':app:preDexDebug' の実行に失敗しました。org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) で org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) で org.gradle .api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) org.gradle.api.internal .tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) at org.gradle.api.internal.tasks.
gradle - Gradle 配布プラグインの zip 内の宛先フォルダーを変更する方法
gradle 配布プラグインを使用して zip ファイルを作成しています。
zip 内のファイルは、<basename>-<version>
egという名前のフォルダーに入れられますinstaller-0.2.1-SNAPSHOT
。zip のルートに直接入れたいのですが、可能ですか?
groovy - Gradle ディストリビューション プラグイン: サブプロジェクトのファイルを別のフォルダーに追加する
サブプロジェクト projectB と projectC を含むマルチプロジェクト ビルド (projectA) があります。各サブプロジェクトには、zip に追加したいリソースがあります。projectB のリソースは、zip 内の projectB というフォルダーにある必要があります。
ディストリビューション プラグインを使用して zip を作成しています。このコードは機能しますが、サブプロジェクトの数と名前に関係なく機能するコードがいくつかあります。
私は次のことを試しました:
しかし、それはコンパイルされません。
これを達成する方法について何か提案はありますか?