Spring boot 弹簧靴&x2B;弹性豆茎。罐子里的膨胀物
我有一个非常标准的Spring启动应用程序(在标准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文件夹,其中
/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