gradle - 使用 Gradle 将 .ebextensions 添加到 Spring Boot Jar 的简洁方法

标签 gradle spring-boot ebextensions

是否有一种干净的方法可以将其他根文件夹添加到使用默认 bootRepackage.jar 生成的 Spring Boot Jar 文件中。就我而言,我需要 AWS beanstalk 的 .ebextenions 文件夹。

我知道我可以破解它——例如在 bootRepackage 之后添加另一个任务来解压缩、重新打包(再次)和重新压缩。有更干净的方法吗?

谢谢

..我尝试过的两种方法(不起作用):

jar {
    from('src/main/ebextensions') {
        into('ebextensions')
    }
}

bootRepackage {
    from('src/main/ebextensions') {
        into('ebextensions')
    }
}

最佳答案

对于 Spring Boot 2 (Gradle),如果 .ebextensions 位于项目的根目录,请使用以下任务:

bootJar {
    from('./.ebextensions') { into '.ebextensions' }
}

bootWar {
    from('./.ebextensions') { into '.ebextensions' }
}

这样 Gradle 就会将 .ebextensions 复制到应用程序包的根目录中。

但如果你愿意convention over configuration ,将 .ebextensions 文件夹移至 src/main/resources 内。 resources 目录的内容自动打包在 /BOOT-INF/classes/ 中(无需编写脚本)。解压后,EB 部署脚本将发现 .ebextensions 目录。

关于gradle - 使用 Gradle 将 .ebextensions 添加到 Spring Boot Jar 的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39207803/

相关文章:

amazon-web-services - 我可以将 eb 扩展容器命令放在多行上吗?如果可以的话,怎么做?

.net - 从 .ebextensions 中的 Elastic Beanstalk 读取环境属性

gradle - Gradle 5 是否与 Groovy @Field 注释兼容?

java - Jenkins 2.60.2 运行 Gradle 任务时返回 "CreateProcess error=267, The directory name is invalid"

java - Spring Batch 在 Spring Boot 应用程序中看不到 H2 DataSource bean

java - 尝试使用 java spring boot、hibernate 和 thymeleaf 坚持 MAP,但在验证时遇到错误

gradle - 如何包含另一个gradle.properties文件中的变量?

spring - Docker gradlew构建因HibernateException而失败

java - 嵌套迭代 thymeleaf

amazon-web-services - 如何在 .ebextensions 配置中为 crontab 多个环境使用条件 (AWS Elastic Beanstalk)