【问题标题】:Omitting base directories when JARing multiple selective filesJARing 多个选择性文件时省略基本目录
【发布时间】:2017-02-23 13:34:44
【问题描述】:

我有以下目录结构:

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

作为makefile 操作的一部分,我想将RequiredFile.class 和AnotherRequiredFile.class 归档在同一个JAR 文件中,并省略base/dir 目录。最终输出应该是单个 JAR 文件,以便解压 JAR 文件将创建以下结构:

dir11\
     RequiredFile.class
dir12\
     AnotherRequiredFile.class

我知道这可以在 bin/jar 命令中使用 -C 标志来完成,但它要求我在每个输入文件之前添加 -C dir1。上面的例子只包含两个,但以后会有更多,我想避免使用诸如jar -C dir FILE -C dir FILE2 -C dir FILE3 ..... -C dir FILEn之类的命令

有没有办法为所有输入文件使用-C 标志?

谢谢

【问题讨论】:

标签: java class makefile jar


【解决方案1】:

假设您已经在 Makefile 变量中拥有所有类文件文件名。如果您使用的是 gnu make,则可以使用 patsubst 函数来实现:

CLASSFILES := RequiredFile.class AnotherRequiredFile.class

DIR := dir1
JAR_CMD = $(patsubst %.class, -C $(DIR) %.class, $(CLASSFILES))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 2017-05-12
    • 1970-01-01
    相关资源
    最近更新 更多