'github'에 해당되는 글 1건

  1. 2015.11.26 :: CI Jenkins 설치 및 github 연동(2)
개발관련/기타 2015. 11. 26. 17:50

프로젝트를 생성해보자. 


새로운 item 을 클릭후 item 이름(프로젝트 이름)을 써주고 maven project를 체크 해주자. 

그리고 ok 누르고 설정을 끝낸다. 


이제 github에 프로젝트를 먼저 올려놔야 한다. 이부분은 생략 한다. 


새로운 프로젝트(?)를 한개 생성했다. 이제 구성을 해보자. 만들어 놓은 item을 클릭 하고 왼쪽에 구성을 누르자.


github에 올려놓은 프로젝트의 url을 복사후 GitHub project에 url 주소를 설정한다. https://github.com/xxxx/xxxx 이런식으로 될것이다. 


소스 코드 관리

우리는 github에서 소스를 가져오므로 git을 설정하고 소스의 url을 써준다.  Repository URL에는 아래 그림과 같이 git에서 제공하는 git주소를 복사한 후 넣어준다. 


만약 인증을 해야한다면 Credentials에 아이디와 패스워드를 입력하면 된다. 


빌드유발 - Poll SCM 을 설정하고 나머지 설정(시간 설정)은 하지말자. 시간 설정 부분은 crontab 설정과 동일하니 찾아보길...


Build 

Root POM 의 값은 pom.xml 있는 곳을 써야한다. 만약 현재 프로젝트가 test일 경우 하위 폴더에 pom.xml 있다면 pom.xml을 쓰면되지만 test/test1/pom.xml 이 있다면 test1/pom.xml을 써야한다. 

Goals and options는 maven을 어떤 형태로 빌드 할 것인지 쓰는 부분이다. 보통은 clean install을 하겠지만, 여러명에서 개발을 하는 분이라면 아마도 resource 파일이 분리 되어있을 것이다. maven  옵션의 "-P프로필"을 써야한다. ex) clean install -P프로필 


이번엔 프로젝트의 pom.xml을 설정 해야한다. -P프로필을 쓸려면 먼저 maven 설정 파일을 추가해야할 것이다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!-- maven 빌드에 사용하는 java version 안쓰면 maven project가 compile 버전과 동일시 되게 설정 된다. 그러므로 다른 버전을 쓰고 싶으면 필히 넣어 놔야한다. -->
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
 
                </configuration>
            </plugin>
            
            
 
<!-- maven 자체에서 junit 테스트를 통해 결과를 xml로 변환해주는 빌드 plugin  -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>2.18.1</version>
        </dependency>
    </dependencies>
    <configuration>
 
    </configuration>
 
</plugin>            
 
 
<!-- maven내에서  war 를 묶기 위한 plugin -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
        <webResources>
            <resource>
                <!-- 어떤 resource 폴더 경로 -->
                <directory>src/main/resources-${environment}</directory
                <!-- resource 파일내의 빌드 할 파일 타입 -->
                <includes>
                    <include>*.properties</include
                    <include>*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </webResources>
        <!-- 빌드할 경로 -->
        <warSourceDirectory>src/main/webapp</warSourceDirectory>
    </configuration>
</plugin>            
cs

위와 같이 maven 파일의 build tag안에 위에 문구를 넣어준다. 


빌드 후 조치


우리는 war파일로 빌드 할 것이므로 먼저 tomcat의 tomcat-user.xml 열어보자. 

1
2
 <role rolename="jenkins"/>
  <user username="admin" password="admin" roles="jenkins"/>
cs

위와 같이 유저를 등록한다. 이후 다시 tomcat을 구동 후 jenkins 설정으로 돌아온다. 


빌드 후 조치 추가 버튼을 누르면 Deploy war/ear to a container 라는 문구를 클릭한다.



tomcat 주소 및 아이디 패스워드를 등록하고 war/ear files 에 **/*war라고 써준다. 

context path는 빌드 할 프로젝트의 context path를 등록해주면 된다. (webapp의 context path)


그리고 저장한다. 여기 까지 jenkins의 셋팅이 끝났다. 


다시 정리 해보면 

1. eclipse에서 github으로 commit/push를 한다. 

2. github에서 hook를 통해 jenkins로 전달 한다. 

3. jenkins에서 빌드되며, 빌드 후 조치로 미리 설치된 tomcat was에 빌드가 될것이다. 

4. 설치된 tomcat was의 context path로 접근하면 된다. 


위 작업 대로 되는지 보자.. 

커밋을 하면 아무것도 안될 것이다.....=_=; 

위 2번째 항목을 안한 것이다. github에 hook을 설정하자. 



github의 빌드할 프로젝트의 오른쪽에 settings를 클릭한다. 


위와 같은 그림이 나올것이다. 왼쪽의 webhook & services를 클릭 후 위와 같은 화면이 나온다.

Available Services에 jenkins라고 입력하면 두가지가 나온다 이때 git plugin을 선택한다. (github plugin은 안되더라구여;;; )



여기에 jenkins url을 써주자. 내부 아이피는 불가하니 필히 외부 아이피로 등록해야한다. 

필자의 경우 http://xxx.xxx.xxx.xxx/jenkins 이다. 앞서 설명한 jenkins 시스템 설정의 url과 동일하다. 그러니 둘다 외부 아이피로 등록해줘야한다. 


이제 위에 순서대로 될것이다. 


posted by 제스트
: