
사양이 좋은 컴퓨터를 받아서 로컬에 sonarqube를 설치하고 정적분석을 해보기로 하였다. Windows 환경에서 설치를 하는건 개인적으로는 Linux 환경에 설치하는것보다 조금 까다로웠다. 설치 Download | SonarQube Get the latest LTS and version of SonarQube the leading product for Code Quality and Security from the official download page. www.sonarqube.org sonarqube 공홈에 들어가서 다운로드를 받는다. 접속하여 조금 내리면 아래와 같은 화면을 볼 수 있다. 재력이 되어서 Enterprise Edition을 받으면 좋지만 Commuity Edition도 충분히 훌륭..

Jenkins 사용시 사용자별로 특정 Job만 보였으면 하는 요구사항이 있다. 즉 A user는 A project만, B user는 B project만 각각 빌드할 수 있어야 한다. 이에 대한 방법을 소개하고자 한다. 필요 플러그인 설치 기본으로 Jenkins를 설치하면 Matrix Authorization Strategy Plugin 이 설치가 되어 있지 않다. 사용자별/프로젝트별 프로젝트 관리를 위해서는 필요한 플러그인이다. 설치가 안되어 있다면 설치해준다. 사용자 생성 일단 사용자 생성을 한다. 사용자 생성은 Jenkins 관리 > Manage Users 에서 할 수 있다. 이렇게 A user와 B user를 생성하였다. Job 생성 이 글을 읽는 분들이라면 Jenkins에 이런 Job들은 있을것이..

Jenkins 실행중에 다음과 같은 오류가 발생하였다. 상황은 A라는 서버에서 잘 돌고 있는 jenkins를 그대로 가지고 와서 B라는 서버에서 돌린 것이다. 가지고 올때 A 서버의 jenkins job의 상태값까지도 들고 와서 위와 같이 DirectoryNotEmptyException 이 발생을 한 것이라고 보면 된다. 해결책으로는 오류로그에서 명시된 /jenkins설치경로/data/jobs/job이름/lastSuccessful 와 lastStable 을 찾아가 그곳의 기록을 지워주면 오류는 해결된다. 끝!

오래전에 Jenkins에서 JaCoCo 연동하는 방법에 대해 기술을 한적이 있다. 오래전에 해서였을까.. 오랜만에 다시 연동을 하려고 하니 뭐가 문제였는지 다음과 같이 나오며 연동이 잘 되지 않았다. 예전에 하던것(Ant Build & Deploy)과는 다르게 Springboot로 배포된 war 파일을 압축풀고 이 class 파일로 jacoco.exec 파일로 매핑을 해서 이런 문제가 생기나 하고 한참 삽질을 했다. 결론을 먼저 말하자면 원인은 이런 문제 때문이 아니었다. 바로 Jenkins의 JaCoCo plugin이 문제였다. 필자는 예전에 설치된 Jenkins에 JaCoCo를 붙여야해서 Jenkins의 version은 2.1xx 였고 JaCoCo plugin은 3.0.1 이었다. 그리고 class ..

Springboot 환경에서 Maven (pom.xml) 의 기본 설정은 다음과 같다. . org.springframework.boot spring-boot-maven-plugin 이상태로 프로젝트를 maven install을 진행하면 다음과 같이 class 파일이 들어있는 jar파일이 하나 생성이 된다. 여기에 프로젝트의 source (.java) 도 같이 빌드 및 배포를 하고 싶은 경우가 있다. 이럴 경우에는 pom.xml 을 다음과 같이 설정해준다. pom.xml org.springframework.boot spring-boot-maven-plugin org.apache.maven.plugins maven-source-plugin attach-sources jar maven-source-plugin..

앞서 AWS ec2에 git, gitlab도 설치하고 Jenkins도 설치했었다. CI/CD가 구성되면 그다음은? 품질이다. 정적 소스 분석도구인 Sonarqube를 설치해보자. 기본적으로 java가 설치가 되어 있어야 하는데 이건 Jenkins 설치 글을 보면서 설치해보자. 그리고 간단히 구성을 할것이기 때문에 DB 연동은 하지 않겠다. 폴더 생성 및 설치 # mkdir /app/sonarqube # cd /app/sonarqube 필자는 위와 같은 경로에 sonarqube를 설치할 것이다. 어떤 소나큐브를 설치할지 version을 확인해보자. Index of /Distribution/sonarqube binaries.sonarsource.com 위에서 내 프로젝트에 맞는 sonarqube versio..

로컬 pc에 gitlab을 설치하고 계정을 생성하여 접속을 하려고 했는데 위와 같은 오류가 난다. 관리자가 승인을 해주지 않아서 pending approval 상태인것이다. 관리자(root) 계정으로 로그인을 해보자. root 계정 비밀번호를 모르는 사람은 이 글을 참조하도록 하자. 관리자 계정으로 들어가서 User > Pending approval 으로 들어가면 방금 가입한 계정이 보일것이다. 우측 하단의 설정버튼을 눌러서 Approve를 해주면 된다. 그리고 다시 로그아웃을 하고 생성한 계정으로 로그인을 해보면 이렇게 정상적으로 로그인이 된 것을 확인할 수 있다. 끝!

gitlab을 설치하고 최초 화면을 띄웠다. 그래서? 그 다음은? 설치할때 로그도 정신없이 올라가서 관리자 계정이 있는지 없는지도 모르겠다. 찾아보니 gitlab의 초기 비밀번호는 root / 5iveL!fe 이라는 사람도 있고 root / 5iveL! 라는 사람도 있고 admin / 5iveL!fe 라는 사람도 있었는데 나는 다 들어가지지 않았다... 그래서 결국 초기 비밀번호를 바꿨다. GitLab root 계정 비밀번호 초기화 > docker exec -it [container_id] /bin/bash 필자는 docker로 gitlab을 설치하였다. 그래서 일단 container 내부로 진입! docker로 설치하지 않았다면 이 단계는 건너뛴다. # gitlab-rails console -e pro..