使用Gradle将.ebextensions添加到Spring引导Jar的干净方法
是否有一种干净的方法可以将其他根文件夹添加到使用默认bootRepackage生成的Spring引导Jar文件中。就我而言,我需要AWS beanstalk的.ebextenions文件夹 我知道我可以破解它——例如,在bootRepackage之后添加另一个任务来解压、重新打包(再次)和重新压缩。有没有更干净的方法 谢谢 。。我尝试过的两种方法(不起作用):使用Gradle将.ebextensions添加到Spring引导Jar的干净方法,gradle,spring-boot,ebextensions,Gradle,Spring Boot,Ebextensions,是否有一种干净的方法可以将其他根文件夹添加到使用默认bootRepackage生成的Spring引导Jar文件中。就我而言,我需要AWS beanstalk的.ebextenions文件夹 我知道我可以破解它——例如,在bootRepackage之后添加另一个任务来解压、重新打包(再次)和重新压缩。有没有更干净的方法 谢谢 。。我尝试过的两种方法(不起作用): 我仍在努力将Spring Boot部署到EBS上 我认为该文件夹必须命名为.ebextensions(注意前面的点)。所以你会说into
我仍在努力将Spring Boot部署到EBS上 我认为该文件夹必须命名为
.ebextensions
(注意前面的点)。所以你会说into('./.ebextensions')
,而不是into('ebextensions')
或者,您可以尝试上载包含JAR和.ebextensions
文件夹的ZIP文件:
task zip(type: Zip, dependsOn: bootRepackage) {
from ('./.ebextensions') {
into '.ebextensions'
}
from (jar.outputs.files) {
into '.'
}
destinationDir project.buildDir
}
对于Grails 3,我使用
gradle clean dist
创建一个.zip文件,其中包含用于EB发行版的.war,并使用Procfile
描述Spring引导命令行。.ebextensions
文件夹位于我的项目的基本目录中,projectName
和projectVersion
是在build.gradle
文件中定义的变量:
task dist(type: Zip) {
from war.outputs.files
from "src/staging/Procfile" // this file allows us to control how ElasticBeanstalk starts up our app on its Java SE platform
from('./.ebextensions') {
into '.ebextensions'
}
rename { String fileName ->
if (fileName == "${projectName}-${projectVersion}.war".toString()) {
fileName.replace("${projectName}-${projectVersion}", "application")
} else {
fileName
}
}
}
dist.dependsOn assemble
其中src/staging
中的Procfile
的内容如下所示:
web: java -jar application.war
如果将src/main/ebextensions文件夹移动到src/main/resources/.ebextensions,jar任务将自动将其复制到.jar的根目录下(以及/resources中的任何其他文件),EBS需要它,而无需编写任何其他脚本
这差不多是你能得到的最干净的了 我的.ebextensions位于项目的根目录下。这似乎对我有用 战争{ 来自(“./.ebextensions”){ 进入“.ebextensions” } }对于Spring Boot 2(Gradle),如果
.ebextensions
位于项目的根目录下,请使用以下任务:
bootJar {
from('./.ebextensions') { into '.ebextensions' }
}
或
这样,Gradle将.ebextensions
复制到应用程序包的根目录中
但如果愿意,可以将
.ebextensions
文件夹移动到src/main/resources
中。资源目录的内容自动打包在/BOOT-INF/classes/
中(无需脚本)。解包后,EB部署脚本将发现.ebextensions
目录。您好,我的.ebextensions文件夹位于Spring Boot项目的根文件夹中,我将上面的代码复制粘贴到build.gradle中,但我没有看到.ebextensions文件夹显示在jar文件的根文件夹中。我错过了什么?ThanksIt是一个隐藏的文件夹,可能不会立即显示。(所以投票)请在这里留下评论:您选择了两个解决方案中的哪一个?较新的平台“Amazon Linux 2”不再解析Jar中的文件
bootJar {
from('./.ebextensions') { into '.ebextensions' }
}
bootWar {
from('./.ebextensions') { into '.ebextensions' }
}