gpt4 book ai didi

groovy - 使用 Gradle 从私有(private) Amazon S3 存储库下载依赖项

转载 作者:行者123 更新时间:2023-12-04 08:49:04 25 4
gpt4 key购买 nike

我希望将 Groovy 支持添加到现有的 java 项目中,以便我可以使用 invokedynamic 无缝编译混合的 Java 和 Groovy 代码,以便获得 Java-like execution speed without needing to waste excessive amounts of time with verbose Java syntax

在阅读 gmaven 插件不再支持编译后,以及 groovy eclipse 编译器插件 doesn't yet support invokedynamic ,我问自己,如果 Maven 编译了不必要的慢的 Groovy 代码,我为什么还要继续使用它?

因此,我决定尝试为 Gradle 废弃 maven,以便获得更快的代码,同时将一些 python 部署脚本移植到 Gradle 任务中,以便只需要一个代码库。

我有一些库存储在一个简单的受密码保护的 s3 maven 存储库中(为了避免像工件一样需要企业过度杀伤力)。在做了一些基础研究之后,我发现 Gradle 没有内置支持添加自定义依赖管理,如 this stack overlow question 所确定的。和 this support forums post .

我确实设法找到了 s3 plugin for gradle - 但它不处理依赖关系的管理。

如果 Gradle 的全部目的是比 Maven 更灵活,并且如果依赖管理/构建系统的核心目的是有效地管理来自各种来源的依赖,那么缺乏对自定义存储库的支持似乎是一个相当重要的问题设计缺陷使我迄今为止遇到的任何问题与 Maven 相比都相形见绌。

但是,我很可能遗漏了一些东西,而且我已经投入了几个小时来学习 Gradle——所以我想我会看看是否有一些合理的方法来模拟这些 s3 依赖项的依赖管理,直到 Gradle 开发人员解决这个关键问题。否则我将不得不得出结论,我最好只使用 Maven 并容忍较慢的 Groovy 代码,直到编译器插件支持 invokedynamic。

基本上我需要一个执行以下操作的解决方案:

  • 将依赖项和传递依赖项下载到 gradle 缓存
  • 不需要我硬编码 gradle 缓存的路径 - 这样我的构建脚本就独立于平台。
  • 如果它们已经在缓存中,则不会再次下载依赖项。
  • 适用于多模块项目。

  • 但是,我在文档中找不到任何可以让我知道从哪里开始的线索:

    最佳答案

    Gradle 2.4 has native support for S3 repositories .下载依赖项和发布工件。

    使用 IAM 凭证下载(从上面的链接解释):

    repositories {
    maven {
    url "s3://someS3Bucket/path/to/repo/root"
    credentials(AwsCredentials) {
    accessKey 'access key'
    secretKey 'secret key'
    }
    }
    }

    然后像往常一样指定您的依赖项。

    关于groovy - 使用 Gradle 从私有(private) Amazon S3 存储库下载依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23447954/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com