2012-02-27 11 views
35

非常に明白なものが紛れているかもしれませんが、私は関係なく明確な説明が必要です。私はmavenとarchivaを使用して開発を開始しようとしています。私はsettings.xmlにサーバーと設定の両方を追加し、配備するMaven POMにはdistributionManagementタグを追加しました。リリースを展開するとスナップショットを区別する方法

POMの内部スナップショットリポジトリと内部リリースリポジトリの両方への参照を入れます。 SNAPSHOTとしてデプロイするように指定した特定のmavenコマンドまたはオプションがありますか?両方のreposにはありませんか?または、私がデプロイすると、1つのコピーを各レポに自動的にプッシュしますか?

誰かがこれを明確にすることはできますか? "

答えて

57

あなたproject.versionSNAPSHOT(f.e.、1.2-SNAPSHOT)が含まれており、mvn deployを実行すると、アーティファクトがあなたのスナップショットリポジトリにデプロイされます。それがなければ(つまり、1.2)、それらはあなたのリリースリポジトリに配備されます。

+0

「リリース」を実行するために、私はメジャー/マイナーなどの番号を自分で決めますか?あるいは単にその行から-SNAPSHOTを削除するのですか? MavenはMavenを実行するたびにそれらを更新しません。 –

+0

手動で行うことも、[maven-release-plugin](http://maven.apache.org/plugins/maven-release-plugin/)を使うこともできます。 –

+2

私はMaven-release-pluginを強く提案しています。あなたのためにタグを作成し、繰り返しているすべてのものをやり遂げます。 – tom

0

mvn deployを実行できます。

POMバージョンに接尾辞としてSNAPSHOTが含まれている場合、distributionManagement.snapshotRepositoryの下に設定されたリポジトリに展開されます。

POMに接尾辞SNAPSHOTが含まれていない場合は、distributionManagement.repositoryの下に設定されたリポジトリに展開されます。

ただし、maven-release-pluginを使用してバージョン管理と展開を管理することをお勧めします。再開に、mvn -B release:clean release:prepare release:performを実行して:

  • サフィックスSNAPSHOTはバージョン(例えば2.1-SNAPSHOT - >2.1)から除去されます。
  • アプリケーションはJARファイルを生成するように構築されています。
  • コードはコードリポジトリ(例:git)にコミットされ、タグが付けられます(例:2.1)。
  • JARは(スナップショットリポジトリではなく)リリースリポジトリにデプロイされます。
  • バージョンが増分され、接尾辞SNAPSHOTが追加されます(例:2.2-SNAPSHOT)。