2011-02-07 6 views
5

のプロジェクトに追加する必要のあるクラスがあります。コンパイル済みのJavaクラスをMavenプロジェクトに追加

私が考えることができる1つの解決策は、これらのファイルでjarファイルを作成し、手動でリポジトリにアップロードすることです。明らかにこれはうまくいくでしょう。しかし、より洗練されたソリューションがあるのだろうかと思います。私は何とかプロジェクトの構造の下に置くことができますか?したがって、ファイルはソースコントロールにチェックインされ、バージョンなどを維持するのがより簡単になります。

+1

パッケージ化されていないコンパイル済みクラスを最初に配布することについては何もエレガントではありません。 –

+0

Borisが示唆しているように、バイナリクラスファイルをソース管理リポジトリに格納することは悪い考えです。 – crowne

+0

@シアン:私は同意しますが、これは与えられた状況です。私には全く新しいことを認めなければなりませんが、現在私はそれについて何もできません。 – Tarlog

答えて

8

はここ(発見した後、自分は昨日と同じを使用する必要が、私は使用のだ答えへのリンクを見つけることができません)ボリスと答えたのコメントどおりに私のアプローチです:

プロジェクトディレクトリでは、 repoという名前のフォルダを作成します。これはフォルダベースのMavenリポジトリとして使用します。

プロジェクトpom.xmlに次のファイルリポジトリを追加します。これに続いて

mvn deploy:deploy-file 
-Durl=file:///absolute/path/to/your-project/repo \ 
-DrepositoryId=file.repo \ 
-Dfile=path-to-your.jar \ 
-DgroupId=some.external.project.group \ 
-DartifactId=the-artifact-name \ 
-Dversion=1.0 \ 
-Dpackaging=jar; 

を:jarファイルとしてあなたのクラス

<repositories> 
    <repository> 
     <id>file.repo</id> 
     <url>file://${project.basedir}/repo</url> 
    </repository> 
</repositories> 

パッケージを、そして次のコマンドで、ファイルのリポジトリにデプロイ上記のように渡されたgroupId、artifactId、およびversionの値を使用して、プロジェクトのjarファイルに通常の依存関係を追加することができます。 repoフォルダをSVNに追加し、変更内容をpom.xmlにコミットできます。あなたのプロジェクトをチェックアウトしている開発者は、何の努力もせずに同じ依存関係を使用できるようになります。

2

最初のアイデアは、管理していないバイナリをチェックする方が良い方法です。したがって、バイナリをjarファイルにバンドルしてバージョンアップし、リポジトリにデプロイします。

+5

リポジトリを共有していない他の人と一緒に作業している場合、SCMに依存関係を追加したい場合は、プロジェクトルートの下にファイルリポジトリを作成し、パッケージ依存関係をプロジェクトPOMのファイルリポジトリを参照し、リポジトリをリビジョン管理に追加します。 – Tim

+0

@Timあなたのコメントは別の答えに値する。 –

+0

まあ、私は完全にあなたに同意することはできません。ソース管理では、何が起こっているのかをもっとコントロールできます。 – Tarlog

関連する問題