2011-12-16 9 views
0

私は自分自身のために私は複数のプロジェクトで使いたい小さなフレームワークを作成しました。また、配布されたjarファイルにすべての外部ライブラリを含めて、私のプロジェクトがすべての外部ライブラリにアクセスするために私のライブラリを含めるだけでよいようにしたい。自分のライブラリにjavaライブラリを含める

外部ライブラリの更新を簡略化するには、これが必要です。

私はこれをbuild.xmlに入れました。dist/libからすべてのライブラリを自分のjarファイルに追加しました。

<target name="-post-jar"> 
    <!-- Include all java libraries --> 
    <fileset dir="dist/lib" id="extern.libs"> 
     <include name="*.jar" /> 
    </fileset> 

    <!-- Add the libraries from the fileset to the project.jar --> 
    <jar jarfile="${dist.jar}" update="true"> 
     <zipgroupfileset refid="extern.libs"/> 
    </jar> 
</target> 

しかし、私は「org.zkoss.zk.ui.Component」などの外部ライブラリを使用しようとすると、私はこのライブラリが見つからなかったことをエラーが発生します。

私のプロジェクトで使用できるように外部ライブラリを自分のライブラリに組み込む方が良いでしょうか?

+0

Mavenのような外部依存関係管理ツールを使用します。 –

答えて

0

はIDEに依存...あなたは、Eclipseを使用している場合、それは非常に簡単です...プロパティ - に行く>パスを構築し、ライブラリを追加...

+0

私はNetBeansを使用していますが、ライブラリを追加するための同様のプロパティがありますが、自分のプロジェクトで自分のライブラリプロジェクトに含まれるすべてのライブラリにアクセスできるようにします。 – mw88

+0

他のライブラリと永久にあなたのプロジェクトライブラリを含みます.. – sum2000

+0

私はOPがビルドされた瓶に依存するライブラリを含めることを求めていると思います。 IDEのビルドパスにjarファイルを追加しても、jarファイルは自動的には組み込まれません。 – Andy

2

あなたはMavenアーティファクト、ユーザーに公開することができますあなた自身の依存関係を含める必要なしに、あなたのフレームワークの中で使用できます。あなたのpomで十分です。

あなたは「オールインワン」アーティファクトを作成したい場合は、外部依存関係を持っていないjarファイルを作成するためにOneJarまたはjarjarまたはMavenのShade pluginのようなものを検討してください。

+0

私はMavenを使用することが私のニーズには過剰なものになると思います。私は現時点でOneJarを試していますが、今まで働くことはできません。 – mw88

1

標準のクラスローダーは、jarファイル内にあるjarファイル内のクラスファイルを見つけることができません。すべてのjarをclasspathに追加し、jarファイルを入れ子にする必要はありません。

ところで、入れ子になっているジャーを許可するのは悪い考えです。多くのライブラリが依存しているので、すべてのプロジェクトにcommons-langまたはlog4jの6または7バージョンがインストールされます。

+0

それは良い点であり、私はそれについて考える必要があります。私はちょうど私のプロジェクトに1つのライブラリを追加できるようにしたいとこのライブラリはすべての依存関係をドラッグする必要があります。 – mw88

+0

それは、Maven(とIvy)のすべてです。依存関係を管理することです。個人的には、自分自身の依存関係を処理するよりも、Mavenを使う方が難しいことが多いですが、YMMVです。 –

1

One-jarまたはFat Jarを使用できます。 mavenを使用する場合は、maven-assemblyプラグインを使用できます。

+0

私は現在OneJarを試していますが、Fat JarはEclipseプラグインのようですが、NetBeansを使用します;-) – mw88

+0

@ mw88 FatJarは[onejar](http://one-jar.sourceforge.net/)のプラグインです。 –

関連する問題