2011-03-16 14 views
10

grails.util.Environment definiuje szereg środowisk wstępnieJak stworzyć niestandardowe środowisko w Grails?

  • ROZWOJU
  • PRODUCTION
  • TEST
  • CUSTOM

Po uruchomieniu polecenia Grails, środowisko używać można określić za pomocą -Denv flaga, np grails run-app -Denv=test. Można również określić blok kodu, który jest właściwy do pewnego środowiska przy użyciu zamknięć, takich jak:

environments { 
    production { 
     grails.serverURL = "http://www.changeme.com" 
    } 
    development { 
     grails.serverURL = "http://localhost:8080/${appName}" 
    } 
    test { 
     grails.serverURL = "http://localhost:8080/${appName}" 
    } 
} 

tych zamknięć specyficzne dla środowiska mogą być stosowane w Bootstrap.groovy i Config.groovy, czy są jakieś inne miejsca?

Czy mogę zdefiniować własne środowisko, np. PRE_PRODUCTION, tak, że będzie działać z zamknięciami powyżej i flagą -Denv?

Na koniec, czy można używać środowiska CUSTOM z flagą -Denv?

Odpowiedz

15

tych zamknięć specyficzne dla środowiska mogą być stosowane w Bootstrap.groovy i Config.groovy, czy są jakieś inne miejsca?

Nie sądzę więc ... W innych miejscach, trzeba by użyć bloku

Environment.executeForCurrentEnvironment { 
    production { 
     // do something in production 
    } 
    development { 
     // do something only in development 
    } 
    pre_production { 
     // do something for your custom environment 
    } 
} 

także Generic Per Environment Execution, jest to możliwe dla mnie, aby określić własne środowisko, na przykład PRE_PRODUKCJA, tak, że będzie działać z zamknięciami powyżej i flagą -Denv ?

Tak, powinieneś być w stanie po prostu zadeklarować -Dgrails.env=pre_production i obejmuje blok w Bootstrap.groovy lub Config.groovy (lub niestandardowy grails.util.Environment bloku jak wyżej)

edycji

As pre_production można zobaczyć w Grails source for Environment, tego rodzaju niestandardowe środowisko wyliczy do Environment.CUSTOM, a następnie w bloku check against CUSTOM, and the name of the custom environment

+0

Dzięki, każdy pomysł, jeśli 'PRE_PRODUCTION' dostanie dodany do' grails.utils.Environment' wyliczenia? Wydaje się to mało prawdopodobne, ponieważ nie sądzę, że stałe można dodać do wyliczenia w czasie wykonywania. –

+1

Zaktualizowałem moją odpowiedź, aby to uwzględnić ... nie, nie dodaje się do Enum, po prostu zostajesz oznaczony jako 'Environment.CUSTOM' z' String' dla nazwy twojego własnego środowiska –

+0

Dzięki za aktualizację. Wygląda na to, że nie ma potrzeby konfigurowania listy niestandardowych środowisk w dowolnym miejscu, możesz po prostu z nich korzystać (jak pokazano powyżej)? –

4

Jeśli utworzysz niestandardowe środowisko, możesz użyć go w dowolnym miejscu, w którym używany jest blok environments {}. Na przykład oprócz Bootstrap.groovy i Config.groovy można również użyć go w DataSource.groovy, a nawet innych plikach konfiguracyjnych, takich jak Searchable.groovy.

Również wierzę

Environment.currentEnvironment.name powróci 'pre_production' w Twoim przypadku.

Powiązane problemy