NetBeans 8.1、Apache Ant 1.9.4、およびJava 1.8.0_66を使用しています。NetBeansを使用してクラスパスからlibを削除するjarファイルの設定
私たちのローカルネットワーク展開環境では、/ libサブディレクトリを持つappsディレクトリがあります。/libには、/ lib内の他のライブラリ(Dep.jar)に依存するライブラリ(Library.jar)があります。多くのアプリケーション(App.jar)はLibrary.jarに依存しています。これらのライブラリとアプリケーションの多くは、以前にビルドされ、私が言及したもの(Java 1.6以前)より古いバージョンを使用していました。
以前は、App.jarのマニフェストはClass-Path: lib/Library.jar
を参照し、Library.jarはClass-Path: lib/Dep.jar
を参照していました。
これはいくつかの修正を行い、Library.jarを最新のJavaバージョンに更新するまで機能しました。さて、App.jarを実行するとDep.jarは見つかりませんが、マニフェストは以前と同じように見えます。 Library.jarが/ libディレクトリにあるため、App.jarはlib/Dep.jarではなくlib/lib/Dep.jarを探しています。
これまでのところ、Library.jarのManifest.mfファイルをClass-Path: Dep.jar
に編集するのが最良の解決策でした。これにより、App.JarがDep.Jarを探すために2つのlibsに入るのを防ぐことができます。しかし、jarファイルを編集するのは一般的な作業ではありません。NetBeans IDE内のソリューションや、jarファイルのクラスパスからlibを削除するbuild.xmlに追加できるものが好きです同じディレクトリ内のjarを参照してください。 Dependent Jarを更新する際にポインタを維持しながら、Store-for-Storeを含まないソリューションを希望します。
また、最初の変更の原因を知りたいのですが、それはバージョンの更新などです。どんな助けでも大歓迎です。
現在のbuild.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Library" default="default" basedir=".">
<description>Builds, tests, and runs the project Library.</description>
<import file="nbproject/build-impl.xml"/>
</project>
現在の 'build.xml'の内容を投稿してください。 – RAnders00
現在のbuild.xmlは何も特別なものではありません。 –