Gradle解压时如何压平目录结构?

2023-11-22

我想从战争中提取一些 jar 作为我的 gradle (2.0) 构建的一部分。 到目前为止我有这个:

task unzip(type: Copy) {
    def zipFile = file('D:/external/dependent.war')
    def outputDir = file('lib')

    from zipTree(zipFile)
    into outputDir
    include 'WEB-INF/lib/*.jar'
}

这会将 WEB-INF/lib 目录放入 outputDir 中。 我只想把罐子弄平。

要在 Ant 中执行此操作,我会这样做:

  <target name="unzip">
    <unzip src="D:/external/dependent.war" dest="lib">
        <patternset>
            <include name="WEB-INF/lib/*.jar"/>
        </patternset>
        <mapper type="flatten"/>
    </unzip>
  </target>

我如何在gradle中做到这一点?


我相信你可以简单地附加.files给你的zipTree.

task unzip(type: Copy) {
    def zipFile = file('D:/external/dependent.war')
    def outputDir = file('lib')

    from zipTree(zipFile).files
    into outputDir
    include 'WEB-INF/lib/*.jar'
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gradle解压时如何压平目录结构? 的相关文章

随机推荐

  • 替代 MySQL 的 UUID 版本 1 功能?

    Context Web 应用程序 PHP 5 MySQL 5 0 91 问题 我最近从使用自动递增整数改为使用 UUID 作为某些表的主键 通过 MySQL 生成 UUID 时UUID 功能 它们彼此非常相似 uuid 1e5988da a
  • gfortran 傻瓜版: mcmodel=medium 到底是做什么的?

    我有一些代码在编译时出现重定位错误 下面是说明该问题的示例 program main common baz a b c real a b c b 0 0 call foo print b end subroutine foo common
  • 中缀运算符的 Scala 匹配分解

    我试图理解的实施List在 Scala 中 特别是 我试图了解如何使用中缀运算符编写匹配表达式 例如 a match case Nil gt An empty list case x Nil gt A list without a tail
  • 应用程序标题旁边的红点?

    在模拟器上 我注意到我的应用程序标题旁边有一个红色圆圈 类似于新下载的应用程序旁边出现的蓝色圆圈 但只是红色 它看起来是这样的 这意味着什么 我得到了这个问题的实际解决方案 这是由于配置配置文件造成的 如果您在应用程序构建设置中使用实时应用
  • 多个可选参数web api属性路由

    我是属性路由的新手 我不确定这是否可能 我有一个属性路由 它的工作原理如下 HttpGet Route GetIssuesByFlag flag int 3 public IEnumerable
  • JDBI 接受 UUID 参数吗?

    当使用 SQL 对象参数绑定时 JDBI使用 UUID 参数开箱即用 我有一个这样的方法 SqlQuery EXECUTE MyProcedure myField MyDto myMethod Bind myField UUID myFie
  • Ubuntu 升级到 19.10 后 Minikube 将无法工作

    我刚刚将 Ubuntu 从 19 04 升级到 19 10 现在 Minikube 无法启动 所以 过了一段时间 我就完全删除了Minikube minikube stop minikube delete docker stop docke
  • 无法在非 Boost 版本的 Asio 中使用 asio::placeholders::error

    我正在尝试在项目中使用 Asio 的非 Boost 版本 我正在写一个回调stream protocol acceptor async accept 签名需要asio placeholders error要通过 但当我这样做时 出现以下错误
  • 如何在node.js中的“require”之后删除模块?

    比方说 在我需要一个模块并执行以下操作之后 var b require b js do something with b 然后我想拿走模块b 即清理缓存 我怎样才能做到呢 原因是我想动态加载 删除或更新模块而不重新启动节点服务器 任何想法
  • 如何更改 Visual Studio 中控制台应用程序的图标?

    我正在 VS 2008 中开发 C 控制台应用程序 无法更改图标文件 我更改了图标文件project gt properties gt application选项卡 但旧图标仍然与新版本一起显示 检查了帖子中的以下答案以修改 resx 文件
  • 导入处理/模块从 python2 更改为 python3?

    我试图遵循中所示的设计模式上一个问题与 SQLAlchemy 相关 旨在跨多个文件共享公共 Base 实例 代码与 python2 和 python3 完全相同 但是 当我在模块 称为 model 中移动文件 a py b py c py
  • Microsoft Graph 中的单引号转义

    我尝试通过 displayName 查询用户 但在通过 C SDK 和 Graph Explorer 发送请求时无法转义单引号 更新 示例中不清楚 我遇到问题的搜索词是I 查询示例 https graph microsoft com v1
  • 发生 JNI 错误。请检查您的安装

    我正在尝试使用 TestNG 运行一个非常简单的测试 但收到此错误消息 我尝试阅读之前的答案 但它对我不起作用 如果有人能帮助我 我会很高兴 因为我只是 TestNG 的初学者 这是错误消息 Exception in thread main
  • 使用 C# 从 Azure Blob 复制到 AWS S3

    请注意 这是我第一次用 C 做任何事情 所以请友善 我可能犯了一些非常基本的错误 是的 我知道我不应该对密钥进行硬编码 但当代码执行我想要的操作时会修复它 我正在尝试创建一个 Azure 函数 将所有新项目从 Blob 存储复制到 AWS
  • Quartz Cron 表达式:每 15 天运行一次,即一个月运行两次

    我想使用quartz cron 表达式设置调度程序 该表达式每 15 天触发一次 例如每月 1 日和 15 日 0 15 10 15 仅在每月 15 日触发 月 我已经测试过了 下面的表达式工作正常 0 0 0 1 15 1 15 语句在每
  • 使用 jQuery 获取多个 CSS 属性

    我知道你可以设置多个 css 属性 如下所示 element css property value property value 但是如何使用 CSS 获取多个属性呢 有什么解决办法吗 jquery css 方法 从 1 9 开始 表示您可
  • PhantomJS 单击页面上的链接

    我已经编写了 PhantomJS 应用程序的一些部分 我正在一个网站上进行解析 在该网站上我将用户名和密码写入公式 之后我必须点击一个链接 而我收到此错误 TypeError undefined is not a function eval
  • html5视频通过鼠标滚轮滚动播放

    我希望能够制作一个网页 当用户上下滚动鼠标滚轮时 可以向前和向后播放视频 这似乎是可以想象的 通过 HTML5 和可能的 JavaScript 对于此类事情的任何指导都会有所帮助 随时暂停视频 每隔一段时间获取滚动位置并使视频寻找到滚动位置
  • 在 Objective-C 中比较颜色

    我试图使用 Objective C 编写的代码来确定两种颜色是否相等 我正在使用这段代码来确定两种颜色是否相等 当前用于调试目的 NSLog currentColor is currentColor NSLog Adjacent Color
  • Gradle解压时如何压平目录结构?

    我想从战争中提取一些 jar 作为我的 gradle 2 0 构建的一部分 到目前为止我有这个 task unzip type Copy def zipFile file D external dependent war def outpu