java - Gradle - 更改主要发行版 - 删除 bin 和 lib 文件夹

标签 java gradle

我有一个应用了应用程序插件的 Gradle 构建。应用程序插件还应用分发插件并创建默认的 main 分发,这会将启动脚本放置在 bin 文件夹中,并将依赖项放置在 lib 中。

现在我想完全删除该默认行为并拥有自己的发行版,但名称相同main。更准确地说,我不需要 binlib 文件夹,而是想要我的自定义内容。

我知道我可以轻松定义一个新的发行版,例如

distributions {
    my {
        // my configuration here
    }
}

这样我就可以通过 myDistZip 生成所需的分发。

但我想准确更改 main 发行版,以便我能够通过简单的 distZip (或 distTar)生成存档。

我尝试删除主发行版(通过 distributions.remove(distributions.main))并创建新发行版

distributions {
    main {
        // my configuration here
    }
}

但是失败了

Cannot add task ':distZip' as a task with that name already exists.

我猜这只是因为 Gradle 为每个新发行版创建了 distZip 任务,因此它也尝试为新的 main 执行此操作,但是 distZip 任务已在插件应用期间创建。

那么有没有办法改变 main 发行版以摆脱 binlib 文件夹?

等级:3.5

最佳答案

But I want to change exactly main distribution so I will be able to produce archive via simple distZip (or distTar).

似乎您不必更改 main 发行版 - distribution 插件的文档(由 application 插件自动添加)注释对于每个发行版,您可以使用 gradle myDistZip

但是,您似乎也应该能够配置现有的 main 发行版:

distributions {
  main {
    contents {
      // configure
    }
  }
}

虽然您似乎无法重置现有值,但也许您可以使用排除来不复制特定文件夹(请参阅 https://docs.gradle.org/current/javadoc/org/gradle/api/file/CopySpec.html )

关于java - Gradle - 更改主要发行版 - 删除 bin 和 lib 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43734274/

相关文章:

java - 在一天中的特定时间重新加载站点 Java/Spring MVC

java - 如何用 url 的单斜杠替换双斜杠

Android Studio - 模块 NumericPageIndicator 嵌套依赖项

android - 我应该如何处理 "implementation method not found"错误?

android-studio - 在哪里使用Android Studio安装Gradle包装器插件

java - 使用 aes/ecb/pkcs5padding 解密字节数组时出现 IllegalBlockSizeException

java - Servlet 没有将属性转发给 JSP(JSP 接收到空值)

java - 吗啡中带有 @Id 的嵌入对象

java - neo4j 密码,找到节点,它是通过 id 的关系

android - 图像裁剪器问题