4

Bamboo から Artifactory にスナップショット ビルドをデプロイしたいと考えています。私のリポジトリのHandle Snapshotsオプションはチェックされており、にMaven Snapshot Version Behavior設定されていUniqueます。リポジトリのレイアウトはgradle-default.

私の目標は、次のような場所にアーティファクトをデプロイするビルド プランです。

repo-local:com.company/project/1.0-SNAPSHOT/project-1.0-20120612.101600.txt

Bamboo には、フィールドArtifactory Generic Deploy Task用に次のように構成された があります。Edit Published Artifacts

project-1.0-SNAPSHOT.txt=>com.company/project/1.0-SNAPSHOT

ただし、Artifactory は私のビルド アーティファクトを拒否し、次のように述べています。The repository 'repo-local' rejected the artifact 'repo-local:com.company/project/1.0-SNAPSHOT/project-1.0-SNAPSHOT.txt' due to its snapshot/release handling policy.

Artifactory にアーティファクトを受け入れさせSNAPSHOT、ファイル名のタイムスタンプに自動的に置き換えるにはどうすればよいですか?

4

1 に答える 1

4

問題は、選択したレイアウト (gradle-default) によって、デプロイ先のパスが有効な統合リビジョンと見なされないという事実である可能性が最も高いです。gradle-default レイアウトは、次のような統合リビジョンを想定しています。

org/module/1.0-12345678912345/module-1.0-12345678912345.jar

つまり、ベース リビジョンの後に 14 桁のタイム スタンプが追加されます。パスには、14 桁の長いタイムスタンプではなくSNAPSHOTが含まれています。

次のようなパターンが必要な場合:

com.company/project/1.0-SNAPSHOT/project-1.0-20120612.101600.txt

-SNAPSHOTをフォルダー統合リビジョンとして受け入れるようにレイアウトをカスタマイズし、ファイル統合リビジョンとしてタイムスタンプを含むようにアーティファクトを変更する必要があります。

Artifactory が固有でない統合リビジョンを固有のリビジョンに変換するという前提があったと思います。Artifactory は、リポジトリがデフォルトの Maven レイアウトに設定され、アーティファクトが Maven のレイアウトに準拠している場合にのみ、この変換を実行します。

これは、Maven が実際に統合リビジョンの標準を定義しているのに対し、Gradle にはそのような標準がないためです。基本的に、Gradle リビジョンは実質的に何でもかまいません。

その上、独自の統合リビジョンと非独自の統合リビジョンの概念は、Gradle の世界には実際には存在しません。これらの機能をサポートする組み込み機能は実際にはありません。そのため、Gradle で Mavenized パスが表示された場合、それは基本的にパターンを模倣しているだけです。

于 2012-06-12T18:17:43.550 に答える