보통은 pom.xml 빌드스크립트를 프로젝트 root에 포함하지만, 개발자에게 노출되는게 싫다거나 하는 등의 이유로 외부로 빼내고 싶을 때가 있다.

그렇다면 허드슨은 프로젝트 외부에 있는 pom.xml을 이용해서 프로젝트를 빌드할 수 있는가?
허드슨에서 pom.xml의 위치를 절대 경로로 줄 수 있는가?

만약 job 타입이 maven 타입이면 불가능하다. 무조건 workspace에 대한 상대경로여야 한다. 그러니까 닥치고 프로젝트 안에만 있어야 한다는 거다. ../../my/path/pom.xml 이런 거 안통한다.

다행히 job 타입이 free style이면 pom.xml을 workspace 밖에 두는 것이 가능하다.
http://www.nabble.com/Dynamic-Views-of-Clear-Case--%3E-workspace-empty-!-td16350453.html

Posted by 에코지오
,
1. (maven을 사용한다면) pom.xml에 보고자 하는 report 플러그인을 설정
   <!-- FindBugs 리포트 생성 플러그인 -->
   <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>findbugs-maven-plugin</artifactId>
    <version>1.2</version>
    <configuration>
     <threshold>Low</threshold><!-- High, Default, Low, Ignore -->
     <xmlOutput>true</xmlOutput>
    </configuration>
   </plugin>
   <!-- PMD 리포트 생성 플러그인 -->
   <plugin>
    <artifactId>maven-pmd-plugin</artifactId>
    <configuration>
     <rulesets>
      <ruleset>/rulesets/basic.xml</ruleset>
      <ruleset>/rulesets/unusedcode.xml</ruleset>
     </rulesets>
     <sourceEncoding>${maven.compiler.encoding}</sourceEncoding>
     <targetJdk>${maven.compiler.source}</targetJdk>
    </configuration>
   </plugin>

2. 허든슨에서 관련된 허드슨 플러그인을 설치. (Manage Hudson > Manage Plugins)



3. 허드슨에서 빌드시 maven의 site goal을 실행하도록 설정하고 리포트 publish 설정(빌드 Configure 화면). 필요시 pmd.xml, findbugs.xml 같은 리포트 xml 위치 설정.


4. 이제 빌드작업 화면에서 차트를 볼 수 있다~

Posted by 에코지오
,
허드슨은 사용자가 정의한 빌드작업과 설치된 플러그인을 HUDSON_HOME 이라는 디렉토리에서 관리한다.

HUDSON_HOME 의 default 경로는 ~(사용자홈)/.huson 이며  HUDSON_HOME 환경변수를 설정하여 이 경로를
내가 원하는 곳으로 바꿀 수 있다.

Posted by 에코지오
,
Hudson을 로컬에서 권한설정 없이 써보다가 실제 프로젝트에 설치하고 권한관리를 해야겠다 싶어 권한을 설정하는데 왜이리 헷갈리는 건지...

https://hudson.dev.java.net/security.html

허드슨을 톰캣 위에서 돌리다면 이렇게 권한을 설정할 수 있다.

1. Hudson > Manage Hudson > Configure System 화면으로 들어가서 Access Control 항목을 밑에 그림처럼 설정한다. admin 유저를 Add하고 admin 유저에게는 모든 권한. anonymous 유저에게는 조회권한만 준다.


2. 위에서 추가한 admin 유저는 톰캣에서는 role에 해당한다(첨에 이 부분이 헷갈렸다)
톰캣에서 conf/tomcat-users.xml에 허드슨에 admin 권한으로 접속할 계정을 추가한다.
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="hudson-admin" password="hudson" roles="admin"/>
  <user username="manager" password="manager" roles="manager,admin"/>
</tomcat-users>

3. 이제 허드슨의 로그인화면(오른쪽 위의 login 링크)에서 hudson-admin/hudson으로 로그인하면 된다.


Posted by 에코지오
,

허드슨에서 scp 프로토콜을 통해 서버에 접속하는 작업을 포함하는 스크립트를 실행시 인증실패 에러가 발생하면서 빌드 작업이 중단되는 경우가 있다.

아이디/패스워드 인증 방식으로 접속하더라도 스크립트에 아이디와 패스워드만 설정해 놓고 인증에 필요한 모든 준비가 다 끝났다고 안심하면 안된다.

        <sshexec host="${wasserver.ip}" username="${wasserver.username}"
         password="${wasserver.password}" trust="true" timeout="20000" failonerror="false"
         command="${wasserver.cmd.restart}" />

허드슨으로 스크립트를 실행하기에 앞서 허드슨이 설치된 머신의 커맨드 창에서 먼저 scp에 접속해서 접속인증을 획득해 주어야한다.

The authenticity of host 'xxx.xxx.xxx.xxx' can't be established.
RSA key fingerprint is 13:70:69:51:0b:84:a3:d6:fa:ab:ab:89:1a:05:2d:22.
Are you sure you want to continue connecting (yes/no)?  => 여기서 yes를 입력해야 한다.


 

Posted by 에코지오
,

허드슨의 장점 중 하나가 여러가지 플러글인을 끼워넣어 기능을 확장할 수 있다는 것인데,
그런 플러그인 중에 ftp, scp 처럼 빌드 결과물을 서버로 전송할 수 있는 플러그인이 있다.

프로젝트 통신환경이 ssh라서 scp 플러그인을 설치하고 빌드 성공후 빌드 산출물을 서버에 업로드하도록
설정을 하고 빌드를 해보았다.

빌드는 성공했으나 실제로 산출물은 업로드가 되지 않았다.
콘솔 아웃풋도 에러업이 깨끗하였고 허드슨 로그를 뒤져보아도 scp 플러그인에서 에러가 났다는 내용은 없었다.

허탈한 마음에 구글링해보니 역시나...

http://www.nabble.com/Job-using-Maven-does-not-run-SCP-plugin-td17765416.html

현재 scp 플러그인은 job이 maven 스타일인 경우 작동하지 않는 버그가 있다고 한다.

The SCP plugin does not execute with the Maven2 job type, but works fine with a free style job type.


아직은 maven style job 보다는 free style job이 안정적인 거 같다.

ps. 사용한 hudson버전은 1.252다.

Posted by 에코지오
,