アーカイブ上のソースを含むアーティファクトの公開
質問
仕事では、Maven を使用してプロジェクトの依存関係を管理することに取り組んでいます。ローカル リポジトリおよびプロキシとして Apache Archiva (1.2.1) を使用します。パブリック リポジトリに公開されていないオープン ソース プロジェクトのアーティファクトを追加しています。を公開するには、ということを学びました。 ソース そうするべきです。 分類子フィールドを使用する の上 アーティファクトをアップロードする ページ。リポジトリを参照すると、ソースが jar と pom と一緒にリストされます。
しかし、Maven の依存関係を更新すると、リポジトリから jar と pom のみが取得されます。アーカイブが他のパブリック リポジトリからのダウンロードを代理するときに、ソースも欠落していることに気付きました。Archiva の管理ページには、ソースを提供するための設定オプションが見つかりませんでした...私には何が欠けているのでしょうか?
アップデート:アーティファクト ソースを手動でダウンロードする必要があるという事実を見逃していました。つまり、Maven クライアントはそれらをリクエストする必要があり、これはコマンドライン オプションで制御されます -DdownloadSources=true
. 。Maven Integration for Eclipse には、「」で説明されているように、常にそれらをダウンロードするための環境設定があります。 アーティファクトソースの解決. 。その後、Archiva はローカル アーティファクトのソースを提供するか、リクエストをリモート リポジトリにプロキシし、今後のリクエストに備えてソースをキャッシュします。
解決
Archiva はソースを提供しますが、Maven はデフォルトではソースを要求しません。私もArchivaをMavenリポジトリとして使用しているので、それはわかります。ソースをリクエストするにはどうすればよいですか?
エクリプスを使用している場合
- 走れるよ
mvn eclipse:eclipe -DdownloadSources=true
プロジェクトディレクトリ内。 - をインストールできます Eclipse の Maven 統合.
ソースが利用可能な場合は、両方ともソースを返す必要があります。
他のヒント
ソースはコンパイル/実行時の依存関係を満たす必要はありません。アプリにソースをバンドルしたい場合は、ソースとの依存関係を指定します。または、アセンブリのようなプラグインを使用して、アーカイブからそれらを取得します。