
Sonarqube를 사용하다 보면 특정 프로젝트에 맞게 룰셋을 정의해야 하는 경우가 생긴다. 룰셋 관련 파일을 받았을 때 이를 어떻게 Sonarqube에 적용을 해야 하는지, 또 어떻게 룰셋 파일로 추출해 내는지에 대해 포스팅한다. 룰셋 파일이라 함은 다음과 같은 모양으로 생긴 xml 파일이다. abcprojectjavafindbugsAM_CREATES_EMPTY_JAR_FILE_ENTRYMAJORfindbugsAM_CREATES_EMPTY_ZIP_FILE_ENTRYMAJORfindbugsAT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTIONMAJORfindbugsBAC_BAD_APPLET_CONSTRUCTORMAJORfindbugsBC_BAD_CAST_TO_ABSTRACT..

Jenkins와 Sonarqube 연동을 하려면 일단 Jenkins와 Sonarqube가 설치가 되어 있어야 한다. 각각의 설치 과정은 생략하도록 하겠다. 이 두개의 어플리케이션이 설치가 되어 있다는 가정하에 설명을 하도록 하겠다. Sonarqube 에서 해줘야 할일 Jenkins와 Sonarqube 연동은 token으로 한다. Jenkins에서 Sonarqube를 호출하여 작업을 하므로 token의 발행 주체는 Sonarqube이다. 따라서 Sonarqube에서 token을 생성을 해주도록 한다. token 생성은 Administration > Security > User > Tokens token 의 이름은 아무거나 집어 넣고 Generate 를 눌러 생성을 해준다. test 라는 token name..
maven으로 프로젝트를 진행하다보면 3rd party library를 가져와야 하는 상황이 있다. 3rd party library는 maven central repository에는 물론 등록되지 않은 library이다. 일반적으로 이럴 경우에는 remote repository인 내부 nexus에 이런 파일들을 올려놓고 사용을 하지만 여건상 nexus도 구축을 하지 못하는 상황에서 사용할 수 있는 방법이다. 첫번째 방법은 systemPath 를 이용하는 방법이다. pom.xml com.oracle ojdbc 8 system ${project.basedir}/lib/ojdbc6.jar pom.xml 에 일반적으로 작성하는 dependency에 추가적으로 scope와 systemPath를 추가적으로 입력해준..

JaCoCo (Java Code Coverage)는 품질 측정 도구중 하나로 동적 소스 분석 툴에 해당한다. 쉽게 설명을 하자면 내가 개발을 하면서 100가지 기능을 만들었는데 이 기능들이 모두 잘 사용이 되고 있는지 검사를 해주는 거라고 생각하면 된다. 어플리케이션이 구동 중에 만든 기능들을 수행했는지 검사를 하기 위해서 JaCoCo는 agent 형식으로 WAS에 올라가야 한다. 테스트 코드를 충실하게 만들었다면 gradle이나 maven에 plugin을 이용하여 사용을 하기도 하는데 이 글에서는 어플리케이션을 직접 검사할 수 있는 WAS에 agent를 올려서 사용하는 방식을 소개한다. 1. jacocoagent.jar 파일을 구한다. Maven Repository: org.jacoco » org.ja..