【问题标题】:How to exclude all the files from configuration folders in ShadowJar如何从 ShadowJar 的配置文件夹中排除所有文件
【发布时间】:2020-04-05 02:46:57
【问题描述】:

我想从 /conf 文件夹中排除所有 配置 xml 文件。但是,使用下面的 shadowJar 设置(参见第 *** 行),我仍然看到 names.xml(它是 /conf 下的 xml 文件)包含在 jar 中。

如果我专门排除 names.xml 文件。我看不到它,但我必须将每个文件排除在 /conf 文件夹下。

有没有办法我可以使用排除“conf/*.xml”之类的东西来实现这一点?

我的项目结构如下:

myproject
   - conf
   - src
        -java
        -spring

我的 shadowJar 定义是:

 shadowJar {

    version = '0.0.1'
    mergeServiceFiles()
    append("META-INF/spring.schemas")
    append("META-INF/spring.handlers")
    manifest {
        attributes "Main-Class": "com.common.server.Main.java"
    }
    exclude "names.xml"  //this is working.
    exclude "conf/*"     //***this is not working
}

我是 shadowJar 的新手,我尝试了几种方法来排除文件夹下的文件,但没有成功,有人可以给我提示吗?

【问题讨论】:

  • 有问题,为什么shadowJar开头包含“conf”?默认情况下,它仅在源集上运行。 “conf”是标记为模块还是包含在脚本中的某个位置?
  • @Alexiy 嗨,Alexiy,我没有将 conf 指定为 sourceSet 但是,我觉得 conf 文件夹默认被识别为配置文件夹。因为我注意到如果我将 conf 重命名为配置,则它不包括在内。很奇怪。你对此有什么想法吗?

标签: gradle shadowjar


【解决方案1】:
dependencies {
    exclude "META-INF/*.SF"
    exclude "META-INF/*.DSA"
    exclude "META-INF/*.RSA"
    exclude "**/*.html"
    exclude "module-info.*"
    exclude "Log4j-*"
    exclude "mime.types"
    exclude "VersionInfo.java"
  }

请尝试这种格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2017-01-16
    相关资源
    最近更新 更多