【问题标题】:ShadowJar: How to include specific directories?ShadowJar:如何包含特定目录?
【发布时间】:2020-03-12 17:48:44
【问题描述】:

我正在使用org.jdesktop.appframework 开发一个Java 应用程序。 然而,使用 ShadowJar 的胖 jar 正在生成我不想要的文件。 如何删除除我的项目类和 jdesktop 依赖项之外的所有文件?

使用以下任务修改以某种方式包含 org.jdesktop.appframework:

shadowJar {
    include 'myproject/', 'org/'
}

结果:

META-INF/
myproject/

预期:

META-INF/
myproject/
org/

【问题讨论】:

  • 还包括哪些其他文件以及它们是如何添加到项目中的?
  • @cfrick 资源,如 png、.txt 文件,...... 很难解释 - 基本上我正在将资源复制到已编译的类文件夹中。然后 ShadowJar 仍然将这些资源生成到我要删除的根目录中。
  • 如果你在资源文件夹中放置了一些东西,它应该像所有其他应该在根类路径中结束的东西一样被处理。如果这些资源是您项目的一部分,您为什么不想加入 fatjar?

标签: java gradle groovy jar shadowjar


【解决方案1】:

基于documentation,包含一次采用一种模式。

shadowJar {
   include '*.jar'
   include '*.properties'
   exclude 'a2.properties'
}

类似

shadowJar {
  include 'myproject/' 
  include  'org/'
}

(未测试 - 稍后会做)

【讨论】:

    猜你喜欢
    • 2015-02-07
    • 2018-04-17
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多