Spring boot 弹簧靴&x2B;弹性豆茎。罐子里的膨胀物

Spring boot 弹簧靴&x2B;弹性豆茎。罐子里的膨胀物,spring-boot,amazon-elastic-beanstalk,spring-boot-maven-plugin,Spring Boot,Amazon Elastic Beanstalk,Spring Boot Maven Plugin,我有一个非常标准的Spring启动应用程序(在标准/src/main/resources文件夹中有一个application.propertiesproperties文件),我正在AWS Elastic Beanstalk上作为“胖JAR”部署它。它工作得很好,但是在服务器上上传图像有问题。经过一些调查,似乎需要调整NGINX配置(将客户端最大体大小增加到一定程度,这样它就可以接受高达10MB的上传,因此我在/src/main/resources下添加了一个.ebextensions文件夹,其中

我有一个非常标准的Spring启动应用程序(在标准
/src/main/resources
文件夹中有一个
application.properties
properties文件),我正在AWS Elastic Beanstalk上作为“胖JAR”部署它。它工作得很好,但是在服务器上上传图像有问题。经过一些调查,似乎需要调整NGINX配置(将
客户端最大体大小
增加到一定程度,这样它就可以接受高达
10MB的上传,因此我在
/src/main/resources
下添加了一个
.ebextensions
文件夹,其中包含一个包含以下内容的文件(取自):-

但是,当我在构建中运行
mvn
时,它不会在根文件夹中创建
.ebextensions
,我想知道什么是最好的解决方案。我的
pom.xml
文件非常小,当前包含以下内容:

    ...

    <packaging>jar</packaging>

    ....

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>

            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>springloaded</artifactId>
                    <version>1.2.6.RELEASE</version>
                </dependency>
            </dependencies>

        </plugin>
再次删除XML解决了这个问题,不幸的是这不起作用


更新2 上一节中描述的问题似乎是指向
.ebextensions
的新
覆盖了在以下内容中定义的
块:-

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

org.springframework.boot
spring启动程序父级
1.4.3.1发布
为了使一切正常工作,我将其复制并附加到末尾,如下所示:-

    <resources>

        <resource>
            <directory>src/main/resources/ebextensions</directory>
            <targetPath>.ebextensions</targetPath>
            <filtering>true</filtering>
        </resource>

        <!-- Followed is copied from `spring-boot-starter-parent.pom` -->

        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>**/application*.yml</include>
                <include>**/application*.properties</include>
            </includes>
        </resource>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <excludes>
                <exclude>**/application*.yml</exclude>
                <exclude>**/application*.properties</exclude>
            </excludes>
        </resource>

    </resources>

src/main/resources/ebextensions
.ebextensions
真的
${basedir}/src/main/resources
真的
**/应用程序*.yml
**/应用程序*.properties
${basedir}/src/main/resources
**/应用程序*.yml
**/应用程序*.properties

谢谢大家的帮助

下面是一个pom代码片段,它将使它在JAR中工作:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/resources/ebextensions</directory>
            <targetPath>.ebextensions</targetPath>
            <filtering>true</filtering>
        </resource>
        <!-- Followed is copied from `spring-boot-starter-parent.pom` -->
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>**/application*.yml</include>
                <include>**/application*.properties</include>
            </includes>
        </resource>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <excludes>
                <exclude>**/application*.yml</exclude>
                <exclude>**/application*.properties</exclude>
            </excludes>
        </resource>
    </resources>
</build>

org.springframework.boot


事实上,我上传了这个样本。只需执行一个
mvn包

您得到的错误消息是找不到javaMailSender属性

pom.xml中提到的资源路径覆盖默认的资源根路径

因此,JavaMailSender正在这个新的资源路径下寻找jndi配置或邮件属性,但它找不到。。因此出现了错误

spring.mail.jndi-name=mail/testmail


实际上,这是与SpringBootJAR相关的问题。因为您使用的是1.2.6版本的SpringBoot,它有一些bug,比如javamailsender问题。您需要将spring boot版本升级到1.3.0.0版本以上

在这种情况下,mailsender问题在spring引导中得到了修复。 因此,您可以升级到最新版本或超过1.3.0版本的其他版本

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <version>1.3.5.RELEASE</version>
</dependency>

org.springframework.boot
弹簧靴起动器
1.3.5.1发布

希望这能解决您的问题。

洛伦娜·萨拉曼卡提出的解决方案不适合我……:\

我的解决方案适用于Spring1.5.3.0版本

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

<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>
                            <!-- <jar jarfile="${project.build.directory}/${project.build.finalName}.jar" basedir="${project.build.directory}/${project.build.finalName}"/>-->
                            <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>

org.apache.maven.plugins
maven antrun插件
1.6
准备
包裹
跑

这个插件使用ant解压spring boot生成的最后一个jar,复制根目录中的.ebextensions,并使用相同的名称再次压缩(jar)。经过测试并在生产中工作:)

我相信在这种情况下,使用独立的JAR更容易,然后将您的JAR和
.ebextensions
打包到一个zip文件中

首先在项目根目录中创建一个名为
Procfile
的文件,该文件包含以下内容:

web: java -jar sample_app-1.0.0.jar
然后创建一个zip文件,其中包含JAR和
Procfile
文件和
.ebextensions
目录:

sample_app.zip
|
|_.ebextensions
|   |_ nginx
|      |_ conf.d
|         |_ proxy.conf
|
|_ sample_app-1.0.0.jar
|_ Procfile

您是否尝试过在pom中告诉它应该将文件夹移动到根目录?这是为了部署为WAR——我将部署为一个胖JAR,因此它很容易从命令行运行。您可以使用Build Helper Maven插件,而不是复制
部分:谢谢Lorena的回答。但是,当我添加这个时,服务器不会启动-问题更新。好的,看起来它也在过滤你的属性。我向您展示的这种方法是一种解决方案,您可能需要根据自己的具体情况进行调整。(因为我没有你申请的全部内容)请,按照上面提到的做并让我知道。如上所述-这是一个非常标准的spring boot应用程序,在
/src/main/resources文件夹中有application.properties
src/main/resourcesture
添加到您的解决方案中修复了我的问题。对我来说,这适用于
spring boot starter父版本
1.3.0.RELEASE
,但不是使用
1.4.6.RELEASE
我的
应用程序中有所有这些属性。虽然属性和电子邮件都很好地工作,直到我添加了
标记。是。但据我所知,javamailsender在您在pom.xml中添加的新资源路径中查找相同的配置。。您能否在pom.xml中提供默认资源路径本身,并检查问题是否仍然存在。这是一个非常标准的spring boot应用程序,在
/src/main/resources
文件夹中具有
应用程序。属性
。您是否也在较旧的版本中对其进行了测试?这对我来说很有用。另一种解决方案
<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>
                            <!-- <jar jarfile="${project.build.directory}/${project.build.finalName}.jar" basedir="${project.build.directory}/${project.build.finalName}"/>-->
                            <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>
web: java -jar sample_app-1.0.0.jar
sample_app.zip
|
|_.ebextensions
|   |_ nginx
|      |_ conf.d
|         |_ proxy.conf
|
|_ sample_app-1.0.0.jar
|_ Procfile