有没有一种干净的方法可以将额外的根文件夹添加到使用默认bootRepackage生成的Sping Boot Jar文件中。在我的情况下,我需要AWS beanstalk的.ebextenions文件夹。
我知道我可以破解它--例如在bootRepackage之后添加另一个任务来解压缩,重新打包(再次),然后重新压缩。
谢谢
我尝试过的两种方法(不起作用):
jar {
from('src/main/ebextensions') {
into('ebextensions')
}
}
bootRepackage {
from('src/main/ebextensions') {
into('ebextensions')
}
}
7条答案
按热度按时间lokaqttq1#
对于Sping Boot 2(Gradle),如果
.ebextensions
位于项目的根目录,请执行以下任务:或
这样Gradle会将
.ebextensions
复制到应用程序包的根目录中。但是如果你喜欢convention over configuration,把
.ebextensions
文件夹移到src/main/resources
里面。资源目录的内容会自动打包到/BOOT-INF/classes/
里面(不需要脚本)。而.ebextensions
目录在解包的时候会被EB部署脚本发现。4ktjp1zp2#
我自己还在努力将Sping Boot 部署到EBS中...
我想这个文件夹应该叫做
.ebextensions
(注意前面的点),所以你应该说into('./.ebextensions')
而不是into('ebextensions')
。或者,您可以尝试上传包含JAR和
.ebextensions
文件夹的ZIP文件:kfgdxczn3#
如果您将src/main/ebextensions文件夹移动到src/main/resources/.ebextensions,则jar任务将自动将其复制到.jar的根目录(沿着/resources中的任何其他文件),而无需任何额外的脚本。
这是你能弄到的最干净的了!
5tmbdcev4#
在我的项目中,. eb扩展名是根文件,这似乎对我很有效。
[2019 - 04 - 22]【2019 - 04 - 22】【2019 - 04 - 22】【2019 - 04 - 22】【2019 - 04 - 22】【2019 - 04 - 22】【2019 - 04 - 22】【2019 - 04 - 04】【2019 - 04 - 04】【2019 - 04 - 04】【2019 - 04】【2019 - 04 - 04】【2019 - 04】【2019 - 04】【2019 - 04】【2019 - 04】【2019 - 04】【2019 - 04】【2019 - 04】【2019 - 04】【2019】【2019 - 04】【2019】【2019 - 04】【2019】【
cx6n0qe35#
在Grails 3中,我使用
gradle clean dist
创建了一个包含EB分发的.war的.zip文件,并使用Procfile
描述Sping Boot 命令行。.ebextensions
文件夹位于我的项目的基目录中,projectName
和projectVersion
是在build.gradle
文件中定义的变量:其中
src/staging
中Procfile
的内容如下所示:cbwuti446#
2021年9月
我尝试在我的jar中添加.ebextensions文件夹,但似乎弹性豆茎不喜欢它了。
相反,我必须创建一个zip文件,其中包含jar和.ebextensions文件夹。
就像这样
Doc
以下是我的gradle kts代码:
ckocjqey7#
由于所有提供的答案都没有解决这个问题,我找到了解决这个问题的另一个方法。