首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot和ebextensions

Spring Boot和ebextensions
EN

Stack Overflow用户
提问于 2017-03-10 02:34:04
回答 5查看 6.4K关注 0票数 11

我正在尝试将一个.ebextensions文件夹添加到我的jar的根级别,以便部署到AWS elastic beanstalk。

我的文件夹结构是:

代码语言:javascript
复制
main:
--src
--resources
  --.ebextensions

当我构建jar时,我的.ebextensions被放在目标的类路径上,因此在部署时Elastic Beanstalk不会拾取它。

Pom.xml

代码语言:javascript
复制
<plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
     <configuration>
           <fork>true</fork>
           <addResources>false</addResources>
     </configuration>
</plugin>

我如何构建才能使ebextensions被ELB拾取?

EN

回答 5

Stack Overflow用户

发布于 2017-06-23 15:50:36

这对我来说很有效,是我找到的(在maven中)解决这个问题的最干净的方法:

在项目的根目录中添加.ebextensions,并在插件部分的末尾添加以下代码片段:

代码语言:javascript
复制
<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <id>prepare</id>
                    <phase>package</phase>
                    <configuration>
                        <tasks>
                            <unzip src="${project.build.directory}/${project.build.finalName}.jar" dest="${project.build.directory}/${project.build.finalName}" />
                            <copy todir="${project.build.directory}/${project.build.finalName}/" overwrite="false">
                                <fileset dir="./" includes=".ebextensions/**"/>
                            </copy>
                            <zip compress="false" destfile="${project.build.directory}/${project.build.finalName}.jar" basedir="${project.build.directory}/${project.build.finalName}"/>
                        </tasks>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

这个插件使用ant解压spring boot生成的最终jar,复制根目录中的.ebextensions,然后使用相同的名称再次压缩(jar)。已在生产环境中测试和运行:)

适用于Spring 1.5.3版本

票数 23
EN

Stack Overflow用户

发布于 2017-03-11 01:07:59

我也遇到了同样的问题,当我按照安迪的建议将.ebextensions移到jar旁边时,当我将它与直接将.conf文件添加到所需的目录(如下所示)相结合时,效果很好:

https://stackoverflow.com/a/41011160/7686379

票数 2
EN

Stack Overflow用户

发布于 2020-11-16 10:49:40

对于那些使用Gradle的用户,为了将.ebextensions内容添加到jar的根目录,需要向您的jar添加以下内容。

它假定.ebextensions目录和内容位于项目的根目录中。

普通Java应用:

代码语言:javascript
复制
jar {
    from(".") {
        include ".ebextensions/**"
    }
}

Spring Boot应用程序:

代码语言:javascript
复制
bootJar {
    from(".") {
        include ".ebextensions/**"
    }
}

Spring Boot用例与普通的Java用例略有不同,因为Spring Boot实际上是Spring Boot Gradle插件构造jar的,它使用一个特殊的"bootJar“任务来代替标准的Java插件"jar”任务。

我认为对于Maven构建,Javier的答案是最干净的方式。对我来说,这说明了在修改“标准”构建时Gradle优于Maven的灵活性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42702947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档