19

Сценарий:Где добавить .ebextensions в WAR?

  • AWS Elastic Beanstalk
  • Java приложение
  • .ebextensions в настоящее время размещены в SRC/основные/ресурсы/.ebextensions

Команды не выполняются.

Где находятся .ebextensions, которые предполагается использовать в приложении Java?

ответ

19

.Рабочие места должны быть помещены в корень WAR.

война структура выглядит следующим образом:

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

Обратитесь к официальному AWS docs для получения дополнительной информации.

+0

Моя война построена с использованием Maven, как бы я изменить мой POM для достижения этой –

+3

, который находится в SRC/основной/веб-приложение –

+2

@GustavoMatias, AWS изменил путь '.ebextensions' некоторое время, но он принимает оба пути (в'/WEB-INF/.ebextensions' и '/ .ebextensions' WAR). – study

31

Использование Maven Я сделал следующим образом:

  • MkDir SRC/основные/ebextensions
  • положить .config файлы в эту папку
  • добавить следующее 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> 
    

передать файлы на верхний уровень войны, когда он будет построен.

+0

С 2017 года этот метод не работает. Плагин XML действительно добавляет папку .ebextensions на верхний уровень войны, но при развертывании на beanstalk эту папку и ее содержимое нигде не найти. – fivedogit

4

Использование Gradle я сделал следующее

  • MkDir SRC/основные/ресурсы/ebextensions
  • положить .config файлы в эту папку
  • добавить следующее build.gradle

применить плагин: 'war'

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

, чтобы передать файлы на верхний уровень войны, когда он будет построен.

0

вы пропустили ресурсы, это работает, когда я ставлю на путь правый

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

Этот ответ кажется помещенным.ebextensions в корневой папке классов внутри сгенерированного JAR, а не в корневом каталоге. – christopher

+0

вы правы @ user3654211 - исправлен мой ответ – hertzi