Ant Build는 이제는 잘 쓰이지 않지만 종종 maven이나 gradle이 아닌 일반적인 Dynamic Web Project로 프로젝트를 구성하는 경우 사용된다. 일을 하며 많은 시간을 이 Ant Build를 사용했고 그중 가장 일반적인 모습의 Ant Build Script를 작성해보고 이에 대한 설명을 하려고 한다. build.xml sampleproject build 일단 전체 Build Script를 올려봤다. 내용은 꽤 길지만 별 내용은 없는 편이다. Build Script를 짤때 저마다의 스타일이 있지만 필자는 이 Ant Script 안에서 배포까지 하는것은 별로 선호하지 않는다. 배포는 Jenkins에서 수행을 하는것을 좋아하고 Ant는 오직 빌드하는 목적으로 주로 사용을 한다. 위에서부터..
jacoco를 사용하여 소스코드에 대한 동적 분석을 한 결과물의 이름을 jacoco.exec로 사용하고 있다. 이 파일은 빌드서버인 jenkins가 설치된 곳으로 이동이 되어서 분석이 되어야 한다. jacoco의 분석은 sonarqube에서도 할수 있지만 jenkins에서 하기로 했다. 대략적인 그림은 이렇다. 여러개의 application이 있고 여기에서 추출된 결과인 jacoco.exec 파일을 jenkins의 소스와 클래스파일이 위치한 곳에 전송하고 싶다. 이런식으로 jenkins가 파일을 받는 경우 이를 위한 여러가지 방법이 있다. 제목은 이렇게 뽑았는데 실제로는 sshpass를 사용해서 파일을 전송하는 것 정도가 정확할것 같다. 첫번째로는 SSH key를 이용을 하는 방법이다. 이 방법의 장점은..
기존에 Sonarqube 6.7에서 사용하던 Java Custom Ruleset이 있었다. 그런데 Sonarqube를 8.5 version으로 올리면서 기존의 Custom Rule + Sonarqube 8.5에 추가된 Sonay way를 선별해서 반영해야 한다. 결론부터 말하자면 생각만큼 간단한 일은 아니었다. 생각보다 복잡하다. 대략 이런 그림이 그려진다. 그리고 해야할일은 다음과 같다. 1번 영역(6.7 버전의 Custom Ruleset)은 2번 영역(6.7 Sonar way에는 있으나 8.5 Sonar way에는 없는 부분)에 대해서는 빼줘야하는 작업이 일어나야한다. (optional) 이를 하기 위해서는 4번 영역(6.7버전과 8.5버전이 공통인 Rule을 가지고 있는 영역)을 구해야 한다. 3번..
하나의 SVN 저장소에 여러개의 프로젝트가 올라가 있는 경우 각 프로젝트 별로 업무 연관성이 있는 개발자만 접근하여 사용을 해야 하는 상황이다. 이렇게 oingdaddy라는 저장소에 현재 A-project, B-project가 있고 이것들을 개발하는 개발자는 각각 다른 사람들이다. 미연의 사고를 방지하기 위해 A-project에는 A-project 관련 인원만 B-project에는 B-project 관련 인원만 접근 가능하게 SVN 설정을 하고자 한다. 설정의 대부분 oingdaddy라는 저장소의 conf 폴더 하위에 있는 파일에서 진행을 한다. svnserve.conf anon-access=none #인증되지않은(즉 계정이 없는) 사용자에 대해 접근을 거부한다. auth-access = write #인..
일전에는 linux 환경에 SVN을 설치해보았다. 보통은 linux에 올려놓고 쓰지만 서버가 들어오지 않은 상황에 임시로 잠깐 사용할 용도로 로컬 PC의 Windows에 설치를 해야 했다. linux와 거의 유사하게 설치할 수 있다. SVN 설치 Subversion for Windows Download Subversion for Windows for free. Command line tools, Language bindings, and Apache httpd modules. Win32 build of Subversion. These binaries are built using Visual C++ 6.0 Should work on all flavours of Windows from Win2000 to Wi..
예전에 Sonarqube와 Jenkins를 연동해서 사용하는법에 대해서 다룬적이 있었다. Jenkins에 Sonarqube 연동하기 Jenkins와 Sonarqube 연동을 하려면 일단 Jenkins와 Sonarqube가 설치가 되어 있어야 한다. 각각의 설치 과정은 생략하도록 하겠다. 이 두개의 어플리케이션이 설치가 되어 있다는 가정하에 설명을 하도록 oingdaddy.tistory.com 여기에 추가적인 요건이 들어왔다. JAVA 파일만 검사하던 기존 로직에서 JS도 같은 Sonarqube Project로 묶어서 Sonarqube에서 확인을 하고 싶다는것이다. 이것도 Sonarqube Scanner의 설정파일을 직접 건드리는 것이 아닌 Jenkins의 Execute SonarQube Scanner를 ..
프로젝트에서는 보통 서버에 들어가서 작업을 할수 있는 사람과 서버에 대한 접근권한이 없는 개발자들이 있다. 개발자들이 개발서버에 어플리케이션을 올렸을때 로그를 확인하고 싶어하는 경우가 있다. 그럴때 매번 서버에 접근가능한 사람이 들어가서 직접 확인시켜주는것보다는 개발자가 서버에 들어가지 않고 Jenkins를 통해서 로그를 볼수 있게 해주면 된다. 방법은 다음과 같다. 설정방법 Jenkins > Plugin Manager Build Timeout 이라는 plugin을 설치한다. 이건 Optional 한 부분이지만 그래도 미연의 사고를 방지하고자 일단은 설치! 설치가 다 되었으면 새로운 Job을 하나 만든다. FreeStyle Job으로 생성한다. 밑으로 내리다 보면 plugin이 설치가 잘 되었으면 위와 ..
프로젝트에 새로오신분께 git 사용권한을 드리고 사용법에 대해 가이드를 하는데 이클립스에서 로그인이 안되는 현상이 있었다. 도대체가 이 화면에서 Next가 안된다. 무한으로 Authentication 을 하라고 나온다. 별다른 오류 메세지도 안나온다.그래서 이클립스 로그를 보니 다음과 같았다. org.eclipse.jgit.api.errors.TransportException: http://gitlab.xxx.git: not authorized at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:222) at org.eclipse.jgit.api.LsRemoteCommand.call(LsRemoteCommand.java:161) at..