2014-09-29 2 views
0

다른 브랜드의 Grails 애플리케이션을 패키징하고 싶습니다. war 파일을 생성하는 동안 특정 브랜드를 참조하는 사용자 정의 매개 변수를 전달하고 해당 브랜드의 스타일 시트를로드하여 응용 프로그램의 스타일을 지정합니다.Grails로 war 파일을 패키징 할 때 다른 스타일 시트로드

온라인으로 읽었을 때 한 가지 방법은 maven에서 발견되었습니다. 나는 maven으로 작업을 시도했지만 초기에 응용 프로그램을 컴파일하는 동안 막혔습니다. 오류는

Failed to execute goal org.grails:grails-maven-plugin:2.2.1:maven-compile 
(default-maven-compile) on project foreAction: Forked Grails VM exited with error. 

지금 걸릴 접근법에 붙어 있습니다. 위의 오류를 검색하고 다른 솔루션을 시도했지만 아무 것도 작동하지 않는 것 같습니다.

Maven을 사용하지 않고 다른 방법이 있다면 기꺼이 제공 할 것입니다.

답변

1

항상 scripts/_Events.groovy을 사용하여 이벤트에 연결하고 appropraite CSS/assets을 바꿀 수 있습니다. documentation은 빌드 이벤트에 연결하는 방법을 설명합니다.

같은 것을 보일 수 있습니다 scripts/_Events.groovy 내부에 코드 :

// This is called after the staging dir is prepared but before the war is packaged. 
eventCreateWarStart = { name, stagingDir -> 
    // place your code here that copies your resources to the appropriate location in the staging directory. 
    Ant.copy(
    file: System.getProperty('somePassedInFile'), 
    toFile: "${stagingDir}/assets/stylesheets/whatever.css", 
    overwrite: true 
)  

}

그런 다음이 같은 grails prod war에서 소스 파일의 값을 전달할 수 있습니다 :

grails prod war -DsomePassedInFile=/path/to/file.css 

희망을 이것은 적어도 당신이 이것을 성취 할 수있는 방법에 대한 아이디어를 제공하는데 도움을줍니다. (모두 내 머리 꼭대기에 오타가 있으므로주의해야합니다.)

+0

조슈아의 도움을 많이 주셔서 감사합니다. 해결책은 매력처럼 작동했습니다. –

+0

걱정하지 않아도됩니다. 기꺼이 도와 드리겠습니다. –