2016-12-07 10 views
0

問題:私のソフトウェアは、すべての開発者(およびユーザー)が別の場所にインストールしたライブラリを使用します。システムパスをpom.xml外の依存関係に指定します。

pom.xmlに次の作品:

<project ...> 
    ... 
    <dependencies> 
     <dependency> 
      <groupId>myGroup</groupId> 
      <artifactId>myName</artifactId> 
      <version>1.2.3</version> 
      <scope>system</scope> 
      <systemPath>C:\...\....jar</systemPath> 
     </dependency> 
    </dependencies> 
</project> 

しかし、私はソースコントロールにこれを確認したときに、それを変更する必要があるすべての開発者が、pom.xmlを変更することがあり、これその後コミットまたはでおき、それを無視すること他の依存関係を追加するなど、pom.xml内の何かを変更する必要がある場合は、部分的にコミットします。プロパティを使用して

  1. が助けにはならない、それだけでpom.xml内部の別の場所に問題が移動します。

  2. の後に、プラグインがと呼ばれているため、プロパティを使用して外部ファイル(properties-maven-plugin)から読み取ると動作しないようです。日食:Dynamically adding a Maven dependency from a property

  3. をどちらか動作しないようです${env.MY_VARIABLE}環境変数の使用:[ERROR] 'dependencies.dependency.systemPath' for myGroup:myName:jar must specify an absolute path but is ${env.MY_VARIABLE} @line 123, column 45

それを解決する方法上の任意のアイデアを?

+0

あなたは間違った方向に行っています。 ' system'はあなたが使用していないはずのもので、いつか削除されます。適切なアプローチについては、http://stackoverflow.com/questions/364114/can-i-add-jars-to-maven-2-build-classpath-without-installing-themを参照してください。 – Tunaki

+0

私の瓶ではないので、私は自分のアプリケーションでそれを配布することはできません。 jarファイルは大量に保護されているので、ローカルのリポジトリに追加したり、処理したり、移動したりすることはできません。キーボードの前に人がインストールした場所に座っていなければなりません。 私は 'システム'がなければそれを解決する方法はありません。それとも、リンクされたページに私が手に入れなかったものがありますか? – Bowi

+0

* jarファイルは大量に保護されているため、ローカルリポジトリに追加することはできません。あなたのローカルレポにはおそらくあなたのものではなく、他のMavenレポからダウンロードされた何千ものJARがあります。この特定のものはリモートリポジトリでは利用できませんが、インストールできないわけではありません。 – Tunaki

答えて

0

私は自分のjarにrepoistoryを使用します。ネクサスやアーティファクトのようなもの。

+0

(私の返信を@ Tunakiのコメントにコピー) これは私の瓶ではないので、私は自分のアプリケーションでそれを配布することはできません。 jarファイルは大量に保護されているので、ローカルのリポジトリに追加したり、処理したり、移動したりすることはできません。キーボードの前に人がインストールした場所に座っていなければなりません。 – Bowi

関連する問題