행복한 아빠

Maven release시 SVN 301 에러 본문

문제발생시

Maven release시 SVN 301 에러

행복한아빠 2009. 11. 25. 13:23
새로운 개발장비가 들어와서 기존 개발장비에서 새 장비로 모두 이전하는 중 Maven release에서 이상한 에러가 발생했습니다.



환경

  • 우분투 9.04 x86_64
  • apache2
  • svn 1.5.4
  • maven 2.2.1

현상

Maven release prepare 하다가 맨 마지막에 svn tag 하는 곳에서 에러 발생

prompt> mvn -Dusername=dykim -Dpassword=xxxx release:prepare
....
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to tag SCM
Provider message:
The svn tag command failed.
Command output:
svn: Repository moved permanently to 'http://nextreesvn/common/'; please relocate
...


원인

SVN이 WebDAV로 서비스 되고 있고 SVN에서 tagging하기 위해 아파치 웹서버로 "PROPFIND /common HTTP/1.1" 요청을 하면 301을 응답합니다. 브라우저로 확인하거나 이클립스 subversive (subversion 플러그인)으로 별 이상없는데 maven release 플러그인에서 commit은 잘 되는데 svn tag 에서 이런 에러가 발생합니다.

해결책

구글링 해보니 SVN 301 이슈는 잘 알려진 것였습니다(http://subversion.tigris.org/faq.html#301-error)만 이 상황과는 다르다고 판단하고 2시간 삽질했습니다. (이전 서버와 설정이 동일한데...)
결정적으로 http://eerien.com/blog/165 블로그가 도움이 되었습니다. 아파치 virtual host 설정에서 DocumentRoot 설정을 삭제해야 합니다.

<VirtualHost *>
        ServerName nextreesvn
        ServerAlias nextreesvn nextreesvn

        ErrorLog /var/log/apache2/error_svn.log
        CustomLog /var/log/apache2/access_svn.log common

        # DocumentRoot /home/svn

        <Directory />
                DAV svn
                SVNParentPath /home/svn

                AuthType Basic
                AuthName "Nextree Subversion Repository"
                AuthUserFile /home/svn/dav_svn.passwd
                Require valid-user
        </Directory>

</VirtualHost>

세상에 도움을 준 모든 이들에게 감사합니다. ^^


0 Comments
댓글쓰기 폼