2014. 4. 28. 22:10



'Test' 카테고리의 다른 글

[2013 spring camp] Spring MVC TEST 발표자료  (0) 2014.04.29
Effective Unit Testing - 좋은 테스트 요약  (0) 2014.04.28
[Mockito] Mockito API  (0) 2014.02.01
Posted by dragonSilver
2014. 4. 17. 20:20

금일 Intellij에서 Sonar rule을 적용시키기 위해서 삽질을 했다.


그 결과를 포스팅에 남기도록 ...... ㅠ_ㅠ


회사에서 전사적으로 Sonar를 이용하고 있다.


Violations Drilldown을 수정하고, 확인 할려면 일단 localhost에 띄우둔 sonar를 실행시켜야지 얼만큼 수정되었는지 확인 할 수 있다.


그러므로 얼만큼 수정되었는지 확인하기 위해서는 시간이 필요하다. 나에게 이 시간은 매우 아까운 시간이다.


그래서 Intellij에서 바로 바로 알 수 있는 방법이 없을까? 해서 찾아보았다.


방법이 있다 +_+ 아싸 :)


적용시켰는데.. 아..... 안된다.. OTL..


왜 안되는지 찾아봤더니.. sonar 3.7버전 이상부터 Execute Preview Analysis를 지원한다. 그래서 sonar 3.7버전을 로컬에 설치해서 사용했다.


근데 또 안된다. 왜..왜...왜.... 안돼는지 열심히 찾아보았다.


Provisioning을 지원을 안해주는 것이다. 윽.. Provisioning은 4.0 이상부터 지원을 해주길래.. 4.0을 설치해서 뛰었다.


이제 되겟지 :) 했는데.. 안된다..


로그에..  "Only multi-module Maven projects are supported for now" 이렇게 나온다.


그렇다.. SonarQube Plugin 1.1은 Maven 멀티 모듈 프로젝트만 지원 해준다.


회사코드는 Maven이 아니라 Gradle이다.. 된장,, 된장..... 흑흑..


그래서 되지 않을까 싶어서 또 열심히 구글링.. 했는데,, 약 1달전에 나와 같은 고민을 했던 사람이 스택오브플로우에 글을 올려놨는데...


결론은 안된다는 것이다.


SonarQube 뿐만 아니라 Sonar Community Plugin, QA 같은 것들 모두다.. 흐억..


눈물을 머금고...... 포기했다.


다음 버전 부터는 지원해 주겠지...


ㅠㅠ


결론 Multi-module Gradle projects만 아니면 지원 된다.



아쉽..




참조 URLs

http://docs.codehaus.org/display/SONAR/Installing+SonarQube+in+IntelliJ

http://docs.codehaus.org/display/SONAR/Configuring+SonarQube+in+IntelliJ

http://docs.codehaus.org/display/SONAR/Authorization

http://docs.codehaus.org/display/SONAR/Provisioning+Projects

http://stackoverflow.com/questions/22176475/sonar-intellij-integration-on-a-multi-module-gradle-project

'Tool > Etc' 카테고리의 다른 글

[Maven] java.lang.OutOfMemoryError: Java heap space 에러 대응  (0) 2013.09.17
Posted by dragonSilver
2014. 3. 7. 23:02

이번 리팩토링 스터디를 진행하면서, 레거시 코드가 없어서, 진행에 차질을 빚고 있던 중(문제를 내서 새로 개발하는데.. 시간이 너무 오래 걸려서...),, okjsp 사이트를 리팩토링 하면 좋을 것 같다는 생각에 스터디원들을 설득? 하여 okjsp를 리팩토링 하기로 했다.


음.. okjsp는 코드가 10년 넘은 코드라서.. 정말 레거시 하다.. 그리고 DBMS가 큐브리드로 되어져 있다.


그래서 큐브리드를 설치할려고 했는데.. 이런 osx는 지원을 안해서... 버철머신을 이용할까 하다가,,, 그냥 mysql로 포팅하는 고난의 길을 선택 했다.


이제 부터, mysql 로 포팅하는 것을 간단하게 설명 하겠다.


1. mysql 설치


2. mysql user 생성 및 권한 와 scheme 생성

- okjsp 소스보면 /WEB-INF/sql/okjsp2007.sql  요넘을 가져와서 스키마 만들고 테이블을 생성한다.


- 유저생성

CREATE USER 'okjsp'@'localhost' IDENTIFIED BY 'okpass';


use mysql;

INSERT INTO db (HOST,Db,USER,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_priv, Alter_priv) VALUES('localhost','test','okjsp','Y','Y','Y','Y','N','N','N','N');

FLUSH PRIVILEGES;


- 그외 추가/수정 해야하는 ddl 들

CREATE TABLE `okboard_ad`(

`aseq` int(11) auto_increment,

`seq` int(11),

`startdate` timestamp,

`enddate` timestamp,

`priority` int(11) default 0,

PRIMARY KEY  (`aseq`)

) ENGINE=MyISAM AUTO_INCREMENT=2063355 DEFAULT CHARSET=latin1;


ALTER TABLE `test`.`okboard` 

ADD COLUMN `id` VARCHAR(45) NULL AFTER `CCL_ID`;



3. maven에 mysql driver 추가하기


<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.29</version>

</dependency>


4. DB.propertie 파일 추가

/etc/DB.propertie 파일 추가

DRIVER=com.mysql.jdbc.Driver

DBURL=jdbc:mysql://localhost:3306/test

DBUSER=okjsp

DBPASS=okpass


5. 큐브리드 문법 제거

- orderby_num() 찾아서 제거

- sysdatetime -> now()변경

- 자바파일 : ArticleDao.java  BookmarkHandler.java  ListHandler.java MemoHandler.java MoveBean.java  TagHandler.java ViewServlet.java


6. index.html 파일 okjsp.pe.kr 박혀있는거 변경

document.location.href="http://localhost:8080/bbs?act=FIRST_MAIN";로 도메인 변경




이상으로 초간단 mysql 포팅기를 마무리 하겠다.



=====================================================


mysql 로 포팅 결과, 정신건강에 매우 좋치 않아서, 결국 서버에 큐브리드를 설치하여 진행 중 입니다.


큐브리드는 OSX를 지원하지 않습니다.


ㅇ.ㅇ;



Posted by dragonSilver