Where to add .ebextensions in a WAR?

2019-01-18 09:54发布

问题:

Scenario:

  • AWS Elastic Beanstalk
  • Java application
  • .ebextensions currently placed in src/main/resources/.ebextensions

Commands are not being executed.

Where is the .ebextensions supposed to go in a Java application?

回答1:

.ebextensions should be placed in the root of WAR.

The WAR structure looks like the following:

web_app.war
          |
          |_.ebextensions
          |   |_ 01run.config
          |   |_ 02do.config
          |
          |_META-INF
          |
          |_WEB-INF
               |_ classes
               |_ lib
               |_ web.xml

Refer to the official AWS docs for further information.



回答2:

Using Maven I did as follows:

  • mkdir src/main/ebextensions
  • put .config files into this folder
  • add the following to pom.xml

        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webResources>
                    <resource>
                        <directory>src/main/ebextensions</directory>
                        <targetPath>.ebextensions</targetPath>
                        <filtering>true</filtering>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
    

to transfer the files to the top level of the war when it is built.



回答3:

Using gradle I did the following

  • mkdir src/main/resources/ebextensions
  • put .config files into this folder
  • add the following to build.gradle

apply plugin: 'war'

war {
    from('src/main/resources/ebextensions') {
        into('.ebextensions')
    }
}

to transfer the files to the top level of the war when it is built.



回答4:

you missed resources, it works when I put the path right

war {
    from('src/main/resources/ebextensions') {
        into('.ebextensions')
    }
}