2013-08-24 16 views
19

Scenariusz:Gdzie dodać .rozszerzenia w WAR?

  • AWS Elastic Beanstalk
  • aplikacja
  • Java
  • .ebextensions obecnie umieszczone w src/main/resources/.ebextensions

polecenia nie są wykonywane.

Gdzie powinny znajdować się rozszerzenia. Java?

Odpowiedz

19

.rozszerzenia należy umieścić w katalogu głównym WAR.

struktura wojny wygląda następująco:

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

Patrz urzędnika AWS docs dla dalszych informacji.

+0

Moja wojna jest zbudowany przy użyciu Maven w jaki sposób zmodyfikować moje pom, aby osiągnąć ten –

+3

, który jest w src/main/webapp –

+2

@GustavoMatias, AWS przez pewien czas zmieniła ścieżkę '.ebextensions', ale akceptuje obie ścieżki (w'/WEB-INF/.ebextensions' i '/ .ebextensions' of WAR). – study

31

Korzystanie Maven zrobiłem następująco:

  • mkdir src/main/ebextensions
  • przeszukiwania plików .config w tym folderze
  • dodać następujące 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> 
    

przeniesienie plików na najwyższy poziom wojny po jej zbudowaniu.

+0

Od 2017 roku ta metoda nie działa. XML wtyczki faktycznie dodaje folder .ebextensions na najwyższy poziom wojny, ale po wdrożeniu do łodygi fasoli nie można znaleźć tego folderu i jego zawartości. – fivedogit

4

Korzystanie Gradle zrobiłem następujące

  • mkdir src/main/resources/ebextensions
  • .config umieścić pliki w tym folderze
  • dodać następujące build.gradle

zastosuj wtyczkę: 'wojna'

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

, aby przenieść pliki na najwyższy poziom wojny po jej zbudowaniu.

0

Przegapiłeś zasobów, to działa, kiedy kładę ścieżkę tuż

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

Ta odpowiedź wydaje się umieszczać.folder ebextensions w katalogu głównym folderu wewnątrz wygenerowanego pliku JAR, a nie w jego katalogu głównym. – christopher

+0

masz rację @ user3654211 - poprawiono moją odpowiedź – hertzi

Powiązane problemy