2017-02-23 14 views
0

をJARINGとき、私次directorie構造:の省略ベースディレクトリの複数選択ファイル

base\ 
    dir1\ 
     dir11\ 
      RequiredFile.class 
      NonRequiredFile.class 
     dir12\ 
      AnotherRequiredFile.class 
      AnotherNonRequiredFile.class 

は、メイクファイルの操作の一環として、私は同じJARファイル内にRequiredFile.classとAnotherRequiredFile.classをアーカイブしたいと思いますが、 base/dirディレクトリを省略します。

dir11\ 
    RequiredFile.class 
dir12\ 
    AnotherRequiredFile.class 

私は、これはビン/ jarコマンドで-Cフラグを使用して行うことができることを知っているが、それは私をreuqires:JARファイルをアンパックすると、次のような構造を作成しますように、最終的な出力は、単一のJARファイルである必要があります入力ファイルのそれぞれの前に-C dir1を追加します。上記の例には2つしか含まれていませんが、後でもっとたくさんのものがあります。jar -C dir FILE -C dir FILE2 -C dir FILE3 ..... -C dir FILEn

すべての入力ファイルに-Cフラグを使用する方法はありますか?

おかげ

+0

を、あなたはアリでこれを達成することができます。 //ant.apache.org/manual/Tasks/jar.htmlまたはMaven:https://maven.apache.org/plugins/maven-jar-plugin/usage.html –

+0

これが何をしなければならないのか分かりません[C]でタグを削除しています –

答えて

0

では、すでにMakefileの変数にすべてのクラスファイルのファイル名を持っていると仮定すると。あなたはGNU makeを使用して提供される、あなたはその達成するためにpatsubst機能を使用することができます。https:これはビルドの一部である場合は(不明瞭なことがあるかどう)

CLASSFILES := RequiredFile.class AnotherRequiredFile.class 

DIR := dir1 
JAR_CMD = $(patsubst %.class, -C $(DIR) %.class, $(CLASSFILES)) 
関連する問題