1

まず、私はこれに完全に困惑しているので、表示するコードはありません。これは SO の質問としては不適切な形式であるため、本当にお詫び申し上げます。関連するビルド スクリプトを昨日丸ごと作成しましたが、これに関して役立つものは何も得られませんでした。

私は現在、 SemVer APIを使用して、自分の Artifactory から以前に公開された JAR に対して現在の JAR を検証するjarタスク(またはそのdoLast {}閉鎖)の一部として、ビルド スクリプトに取り組んでいます。プロジェクトの以前のバージョンを実際にダウンロードすることを除いて、私が持っているものはすべて機能します。機能するスクリプトを考案することができないようです。

これまでの私のアプローチは、Gradle が依存関係管理システムとして Ivy を使用しているため、 Ivy の Ant タスクの一部を適切なパラメーターで呼び出すことができるはずであるという推論に基づいていました。現在のプロジェクトと同じなので、実際にグループ、名前にアクセスできます。および現在のバージョンを簡単に取得し、ダウンロードしたアーティファクト ファイルへのパスを取得して、前述の SemVer API の入力として使用します。少しGradleの初心者であり、実際にIvyを数年間使用していない私は、この時点でこれを実際にクリーンな方法で行う方法がわからないことがわかりました。これに関する私の主なハードルの 1 つは、これまでのところ、Gradle のドキュメントが広すぎて、必要な特定のビットの適切な用語さえ覚えていないときに、物事を見つけるのが難しいことです。

私がこれまでに持っているもののコード/ビルド スクリプトのサンプルを提供していないので、あなたの答えが正しい方向への単なるナッジであるかどうかは気にしません。

4

1 に答える 1

1

Gradle はしばらく Ivy を内部で使用していないため、Ivy ant タスクを使用するというあなたのアプローチが機能するかどうかは非常に疑わしいです。

jar タスクにアクションを追加するのではなく、おそらく別のタスクでこれを行うでしょう。おそらくもっとエレガントな方法がありますが、次のような方法を試すことができます。

configurations { lastPublishedVersion }
configurations.lastPublishedVersion.transitive=false

dependencies {
  lastPublishedVersion group: group, name: name, version: "+"
}

task checkSemVer {
   dependsOn jar
   dependsOn configurations.lastPublishedVersion
   doLast {
     println configurations.lastPublishedVersion.getSingleFile() 
   }

}

PSこれを機能させると、リリースしたい場合、非常に興味深いgradleプラグインになります:)

于 2014-10-06T10:21:23.053 に答える