当前位置: 首页 > 知识库问答 >
问题:

Gradle jar任务执行wsclean任务,为什么?

罗俭
2023-03-14

我有一个版本。gradle文件,看起来像这样

task wsimport{
    ....
}

task wsclean {
    delete "${destDir.path}/com"
}

compileJava.source = ["${projectDir}/src/main/java", "${projectDir}/src/main/generated"]

wsimport任务从wsdl文件生成所需的一些java文件。生成需要一些时间,所以我不希望每次构建jar或编译程序时都执行它。

wsclean任务旨在当wsdl发生更改时使用。

首先,我运行wsimport任务并确认文件生成正确,它们就是!

但是现在,当我运行gradle jar时,生成的文件被删除了。为什么?

当我注释掉wsclean任务时,jar任务成功地继续。为什么gradle调用wsclean。

注意:我确信我没有显式地创建jar。dependsOn wsclean

我持有的一个理论是jar任务执行*干净任务。如果是这样,我如何防止它发生?

共有1个答案

步建茗
2023-03-14

而不是

task wsclean {
  delete "${destDir.path}/com"
}

你需要

task wsclean << {
  delete "${destDir.path}/com"
}

task wsclean {
  doLast {
    delete "${destDir.path}/com"
  }
}

否则,删除将作为配置阶段的一部分执行,这将在每次生成时发生,无论启动的任务是什么。看见https://docs.gradle.org/current/userguide/build_lifecycle.html

 类似资料:
  • 每隔一段时间需要调度任务执行,也许你想注册一个任务在客户端完成连接5分钟后执行,一个常见的用例是发送一个消息“你还活着?”到远端通,如果远端没有反应,则可以关闭通道(连接)和释放资源。 本节介绍使用强大的 EventLoop 实现任务调度,还会简单介绍 Java API的任务调度,以方便和 Netty 比较加深理解。 使用普通的 Java API 调度任务 在 Java 中使用 JDK 提供的 S

  • 原文链接:Serverless 应用开发指南:CRON 定时执行 Lambda 任务 在上一篇文章《Serverless 应用开发指南:基于 Serverless 的 GitHub Webhook》里,我们介绍了如何用 Webhook 来触发定时的 Lambda 函数。这种方式与我们平时的 CI(持续集成)服务器相似,而CI(持续集成)服务器除了会监听 PUSH 事件。还会执行一些定时的任务,比如

  • 我正在从事一个spring boot项目,以自动化与gradle的集成测试。我最近开始在一家新企业工作,我的同事们按如下方式运行集成测试:在构建中。gradle文件有一个集成测试任务 启动任务后,应用程序开始在指定端口运行,然后打开postman,导入集合并运行测试。 我的工作是找到一种方法来跳过额外的点击,即自动运行邮递员集合。第一个想法是使用postman-run gradle插件,但由于企业

  • 要并行或异步运行一些东西,我可以使用ExecutorService:

  • 在当今99%的移动应用中网络都是必不可缺的一部分:总是需要连接远程服务器来检索App需要的信息。 作为网络访问的第一个案例,我们将创建下面这样一个场景: 加载一个进度条。 用一个按钮开始文件下载。 下载过程中更新进度条。 下载完后开始视频播放。 我们的用户界面非常简单,我们只需要一个有趣的进度条和一个下载按钮。 首先,我们创建mDownloadProgress private PublishSub

  • 我正在尝试创建一个应用程序,用于查询cat图像的站点,如果JSON ID是唯一的,则将其保存到android设备,然后从设备以幻灯片格式显示它们。尽管如此,我的AsyncTask似乎并没有实际执行。调试器确认已建立网络连接,并且不会向我反馈任何错误,所以我不知道代码出了什么问题。希望有人能帮忙!代码如下: