구버전 Grails로 작업하기 ( Grails 1.2.2 )
개요
오랜시간 수정없이 잘 쓰이던 Grails로 만들었던 웹앱을 약간 수정할 일이 생겼습니다.
개발당시 Grails는 1.2.2 이고 현재 개발컴에 설치 되어있는 Grails는 2.2 버전입니다.
약간의 수정이 필요할 뿐 최신버전에 맞게 소스를 고치거나 하고 싶은 생각은 없습니다.
구버전 Grails를 다운받아서 설치하고 수정하고 패키징하는 과정입니다.
다운로드
Grails의 사이트는 http://grails.org/ 입니다.
다운로드 페이지로 이동합니다. ( http://grails.org/download )
최신버전은 2.3.0 이네요. 저는 구버전이 필요한 상황이므로
Download previous release 에서 1.2 버전을 선택하고 1.2.2의 binary를 클릭하여
grails-1.2.2.zip 파일을 다운로드 받았습니다.
설치
C: 드라이브에 압축을 풀었습니다. C:\grails-1.2.2\
일단 실행해 보니 에러가 발생합니다.
C:\>C:\grails-1.2.2\bin\grails 오류: 기본 클래스 org.codehaus.groovy.grails.cli.support.GrailsStarter을(를) 찾거나 로드할 수 없습니다.
이미 grails-2.2 버전이 설치되어있어서 충돌이 나는 것 같습니다.
C:\>set GRAILS_HOME=c:\grails-1.2.2
C:\>C:\grails-1.2.2\bin\grails
Welcome to Grails 1.2.2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: c:\grails-1.2.2
No script name specified. Use 'grails help' for more info or 'grails interactive
' to enter interactive mode
GRAILS_HOME 을 재설정하고 실행하니 문제 없이 실행이 됩니다.
앱실행
수정할 앱 디렉토리로 이동해서
grails run-app
실행하니 브라우저에서 확인할 수 있는 url을 알려줍니다.
앱패키징
수정을 마치고 war 파일을 만들기 위하여 다음 명령을 차례대로 실행합니다.
grails prod clean
grails prod war
참고사항
- 외부 라이브러리는 앱\lib 폴더에 넣습니다.
- war 파일을 톰캣에서 돌릴 때
Caused by: groovy.lang.MissingMethodException: No signature of method: xxx.save() is applicable for argument types: () values: []
와 같은 에러가 발생한다면 war 파일을 만들기 전에 clean을 한번 실행해 보세요.
grails prod clean