2016-07-07 4 views
0

私は単純な問題がありますが、Mavenの初心者であることはこの問題を解決するためのベストプラクティスではありません。依存関係を変更して複数のJARをMavenにパッケージ化する

私が働いているプロジェクトには、アーカイブを管理する依存関係があります。これは、net.sf.sevenzipjbindingsです。

この依存関係は、Javaインターフェイスを提供する純粋なJavaと、オペレーティングシステムに応じて多くの味を持つネイティブの基本コードであるもう1つのアーティファクトによって行われます。作業

  • (そうcompile目標の場合:私は、すべてのプラットフォームのすべての原住民とのMavenによって構築されたjarファイルをパッケージ化していますが、私はのような何かを行うことができるようにしたいのですが現時点で

    私は複数のオペレーティングシステムからシームレスに動作することができるように(すべてのプラットフォームの成果物を使用し、正しく)プロジェクトに関する理解
  • Javaインタフェース+特定のプラットフォーム成果物によって構成さ依存関係を持つ3種類のJARを構築パッケージ

これは私の視点からはかなり単純ですが、私は何をすべきか、そしてベストプラクティスは一般的に何かを理解するのに苦労しています。ここからは、コードの一部を分離されたモジュールに分離するなど、異なる機能やモジュール機能はなく、基礎となる動的ライブラリを置き換えるだけです。

+0

あなたのことをちょっと理解するのは少し難しいですが、プロジェクトがライブラリの場合、通常はJavaインターフェイスへの依存性だけで独自のjarファイルをパッケージ化し、適切なネイティブそれ以外の場合はすべてアプリケーションのjarファイルに含めます。 – chrylis

+0

依存関係が異なる必要がある場合は、これを処理するモジュールが異なる必要があります。 – khmarbaise

+0

@chrylis:私のプロジェクトはライブラリではなく、アプリケーションです。基本的には、依存関係がA B C DとEであると仮定すると、ABを使用してコンパイルし、AC、AD、AEで3 JARをエクスポートする必要があります。しかし、これらの依存関係はMavenリポジトリから直接取得され、自分のパッケージではありません。 – Jack

答えて

0

あなたはマルチモジュールMavenのビルドをしたいように聞こえる:

- myapp 
    - myapp-engine 
    - myapp-windows 
    - myapp-linux 

myapp-engineモジュールはexternal-library-apiに依存しなければならない、とmyapp-windowsモジュールはmyapp-engineexternal-library-windowsに依存する必要があります。特定のOSで特定のOSでアプリケーションを実行しているだけなので(開発中であっても)、OS固有のモジュールを起動しない理由はありません。現代のIDEは、マルチモジュールビルドで別のモジュールにデバッグするのに問題はありません。

関連する問題