Antで初めてJARを作成しようとしていて、何か難しかったです。ここに私のプロジェクトのディレクトリ構造は次のとおりです。私のAntのbuildscriptでAntで必要な方法でjarファイルを構造化できない
MyProj/
src/
com.me.org
Fizz
Buzz
dist/
classes/
、私はdist/classes/
フォルダに私のすべてのソース・ファイルをコピーしています。それから私はそうのような私のJARタスクにファイルセットとしてdist/classes
を含めています:
<jar destfile="dist/myProj.jar">
<manifest>
<attribute name="Sealed" value="true" />
</manifest>
<fileset dir="dist/classes"/>
</jar>
JARタスクが実行され、JARを生成します。
インポートclasses.com.me.org:私は別のプロジェクト(エクリプス)のビルドパスにそのJARを置くと、他のプロジェクト内
Fizz
またはBuzz
のいずれかを使用しようとすると、しかし、Eclipseは、それらを輸入しています。フィッツ;
その他Eclipseは私のclasses/
ディレクトリがパッケージだと考える必要があるためです。
私が仮定は、私が言うことをマニフェストに行うことができるものだ、彼らは次のようにインポートされるように「!はちょっとルートパッケージがclasses/com/
、ないclasses/
ある!」:
輸入com.me .org.Fizz;
私はAnt <manifest>
タスクを読み、私が探していたものが見つかりませんでした。誰でも私がここで何ができるか考えていますか?は私がclasses/
ディレクトリの下にそれらをパッケージ化したい、なぜあなたは私が含まれているJAR内の1つのディレクトリを持つことのアイデアが好きなので、私はそのことを言うだろう、になど興味があれば
そして、クラスパス全体。特に、Java以外のクラスパスリソース(イメージ、スクリプト、ファイルなど)がある場合は、パッケージルート(com/
)とこれらの他のリソースを同じ親ディレクトリに入れる必要があります。
元々、私はこのディレクトリをclasspath/
と呼ぶつもりでしたが、私はWARファイル仕様と同じ規約を使用することに決めました。これには、WAR内にclasses/
ディレクトリが必要です。
それが理由です。 ;-) 前もって感謝します!あなたはおそらくあなたのアリファイルセットになりたい
私はそれがパッケージがルートで始まり、いくつかのディレクトリの下に置かれなければならないという瓶の規則であると思います。 – oers
あなたのことを疑うことはありません(そしてありがとう!)私は私の検索でそれを見ていない。 – IAmYourFaja
warファイルに/ WEB-INF/classesディレクトリ(/ classes以外)がまったくない*要件*はありません。すべてのあなたのアプリのクラスはちょうど瓶の中にあることができます。クラスは、パッケージがどこにあるかを正確に特定する必要があります(カスタムクラスローダーとは異なります)。すべてをまとめてみると、ビルドプロセス中に発生します。私はあなたが非標準の階層を課すことによって達成していると思っていることを理解していません。 –