2017-08-01 121 views
1

状況は、this SO questionとほぼ同じですが、私が指しているリソースがプロジェクトフォルダの外にある点が異なります。Maven:プロジェクトディレクトリ以外の相対パスでjarに依存関係を追加します

バックグラウンドは、いくつかのプロジェクトが含まれているgit repoがあることです。プロジェクトの一つは次のようになめらかでなければなりませんので、意図した依存関係を実行するための別のプロジェクトからjarを必要とします。

<dependency> 
    <groupId>another-proj-jar</groupId> 
    <artifactId>another-proj-jar</artifactId> 
    <version>1.0</version> 
    <scope>system</scope> 
    <systemPath>../another-proj/build/another-proj.jar</systemPath> 
</dependency> 

another-proj

は、Mavenのプロジェクトではありません(とMavenのPROJに変換することは、それ自体の問題である、してみましょうここではスキップしてください)、Eclipseインポートを使用してそのjarファイルを手動で作成します。

しかし、すべての例が//${basedir}/my-repoを指しているので、プロジェクトディレクトリ以外の相対パスを示すことができるかどうかはわかりません。${basedir}は本質的に現在のプロジェクトフォルダです。私はそれを現在のプロジェクトのフォルダの1つ上のレベルにする必要があります。

可能かどうか、どのように回避策を講じることができますか教えてください。

+0

システムスコープの依存関係から始めましょう...必要なファイルをリポジトリにインストールするか、リポジトリマネージャをインストールしてそこにインストールするか、[Stephens Plugin](https://github.com/stephenc/non)を使用してください。 -maven-jar-maven-plugin)を他のビルドをmavenに移行するためのステップとして使用します。これはあなたの人生を楽にします... – khmarbaise

答えて

1

本当にこれは通常の依存関係である必要があります。あなたが依存しているプロジェクト(あなたの例では別のプロジェクト)はmvn clean installです。 .jarファイルが~/.m2/repositoryディレクトリにコピーされます。ライブラリを必要とするプロジェクトでのような依存関係を持って次に:

<dependency> 
    <groupId>another-proj-jar</groupId> 
    <artifactId>another-proj-jar</artifactId> 
    <version>1.0-SNAPSHOT</version> <!-- or whatever it is set to --> 
</dependency> 

この巨大な利点は、あなたが引っ張っているjarファイルが何かを必要とするならば、それはあまりにも引っ張ら得るだろうということです。

+0

ああ、他のプロジェクト、例えば'another-proj'は、Mavenベースではありません。私は手動でそれから瓶を作成する...だから私は手動ですべての追加のものを引き出す必要があります – alisa

関連する問題