everydayminder

learn something everyday

Archive for the ‘tools’ Category

Jira에 MySQL 연동하기

leave a comment »

어떤 방법을 선택했건, Jira를 띄울 수 있는 상태가 되었다면,
이제 MySQL을 연결해서 사용할 수 있도록 설정을 진행해보자.

1. MySQL 계정 설정
atlassian가이드에는 다음과 같이 안내되어 있다.

CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on <JIRADB>.* TO '<USERNAME>'@'<JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '<PASSWORD>';
flush privileges;

DB 접속에 사용할 계정 정보로 빈 칸을 채워넣고 실행하자.
정상적으로 grant가 되었는지는,

show grants;

를 수행하여 확인할 수 있다.

2. MySQL Connector 설치
첫 시도 시, MySQL Connector를 yum을 사용하여 다운로드하고 진행했으나,
DB 연결에서 실패하였다.

yum install mysql-connector-java

atlassian 가이드에 안내된 바와 같이, MySQL 공식 사이트로부터
(http://dev.mysql.com/downloads/connector/j) connector를 다운로드 하고 진행하니,
별 에러 없이 connection에 성공하였다.

MySQL 사이트로부터 다운로드한 파일로부터, mysql-connector-java.5.x.x-bin.jar를
찾아 jira를 설치한 곳의 lib 디렉토리에 복사한다.
(내 경우, /opt/atlassian-jira에 jira를 설치했고, /opt/atlassian-jira/lib에
해당 connector jar를 복사하였다.)

3. Jira 설정 진행
지난 포스팅에서와 같이 Jira를 설치하고, 실행시켰다면 브라우저 상에서
http://:8080으로 접속 가능할 것이다.

이제 DB 종류를 MySQL로,
접속할 주소와, 계정 정보 등을 본인이 설정한 대로 모두 입력하자.

하단의 접속 테스트를 실행하여 정상적으로 연결이 된다고 뜬다면,
다음 단계로 넘어가자.

4. 기타 설정
라이센스, 기타 정보 등을 모두 입력하고 나면,
다소 시간이 걸리지만, 설정이 모두 완료될 것이다. (내 경우는 꽤 오랜 시간이
걸려서 첫 화면이 떴다.)

5. Trouble shooting
Jira를 설치한 디렉토리의 /logs/catalina.out을 살펴보면 어떤 에러가 발생했는지
확인할 수 있을 것이다.

내 경우는,

ERROR
The Gadget Dashboard bundled plugin is not available. Please contact an administrator to ensure the Gadget Dashboard plugin is enabled!
 
Perhaps you need to log in to see the page.
If you think this message is wrong, please consult your administrators about getting the necessary permissions.

과 같은 에러가 발생하였고, atlassian 사이트에 나와 있는 안내를 참고하여,

$JIRA_HOME/plugins/.osgi-plugins를 삭제하고, Jira를 재시작 하였다.

그 이후, 다시 실행시켰더니 이번에는 몇몇 플러그인이 로딩되지 않았다고 에러 메시지가
떴다. 이 역시 atlassian 사이트로부터 bin/setenv.sh에 선언되어 있는 환경변수를 조정해 보라는
안내를 발견하여, 다음과 같이 옵션을 변경하였다.

JVM_SUPPORT_RECOMMENDED_ARGS=300

이후, Jira를 시작시켰더니 앞서 발생한 플러그인 로딩 실패와 관련한 에러는 발생하지 않고,
정상적으로 구동 되었다.

6. 정리
1) jira를 어떤 방법이든 택하여 설치
2) MySQL Connector 최신 버전 설치
3) Connector jar를 lib에 복사
4) setenv.sh내 환경변수(JVM_SUPPORT_RECOMMENDED_ARGS=300 편집, 메모리 값 조정)
5) atlassian 가이드 많이 찾아보기

Written by everydayminder

March 29, 2014 at 16:20

Posted in TIPs, tools

tar.gz로부터 Jira(you host)를 CentOS에 설치하기

leave a comment »

Jira를 installer (bin)로부터 설치하는 대신,tar.gz로부터 설치하더라도 사실 별 차이는 없다.

다음과 같이 진행하였다.

1. admin 권한을 가진 계정으로 진행 (예: jira)
2. jira (tar.gz)를 atlassian으로부터 다운로드한다.
3. 원하는 디렉토리에 해당 파일을 압축 해제한다.
예) /opt/atlassian-jira

압축을 해제하고 디렉토리 구조를 bin 파일을 설치한 것과 비교해 보면,
사실 동일하다. tomcat도 함께 패키징 되어 있다.

atlassian 사이트내 가이드에 따르면, 설치 방법이 installer를 사용하거나,
지금 방법과 같이 tar.gz로부터 설치하는 것을 권장한다고 한다.

war 파일을 통한 설정은 그다지 권하지 않는다고 한다.

4. jira의 데이터가 저장될 디렉토리를 생성하고, 환경변수에
JIRA_HOME으로 설정하자. 이 디렉토리도 jira 계정과 동일하게 owner 설정이 되어 있어야 한다.

5. jira를 설치한 디렉토리의 bin을 열어보면
start-jira.sh로 시작시키고, stop-jira.sh로 종료시키면 된다.

Written by everydayminder

March 29, 2014 at 15:53

Posted in tools

Installer방식으로 Jira (you host)를 CentOS에 설치하기

leave a comment »

매우 유명한 issue tracker인 Jira를 어쨌든 한 번 써보고 싶었다.
atlassian에서 운영하는 버전으로 말고, 직접 내가 설치하는 버전으로 구매했다.

You host 버전을 구매하며, 10 users 미만이면 $10가 든다.
그 옆에 Jira Agile은 $20가 든다고 한다.

그래서, 이왕이면 스크럼도 되고 칸반도 된다고 써있는 Jira Agile로 간다!
조금 더 읽어보니, Jira Agile은 Jira의 plugin이고, 구 Greenhopper라고 써 있다.

각각 $10로 총 $20 들었다.

1. 설치 환경
  – OS : Centos6
  – JDK : OpenJDK7
  – MySQL

2. JDK7 설치

yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel

을 설치한다.

.bash_profile내, JDK의 path를 잡아주었다.

JAVA_HOME=/usr/lib/jvm/java-openjdk
PATH=$PATH:$JAVA_HOME/bin
export PATH

설치/설정 후, shell상에서 java -version, javac -version
을 수행하여 java가 잘 설치되었는지 확인한다.

3. DB 설치/설정
HSQLDB 대시 MySQL을 향후 설정할 것이므로,
MySQL을 설치하고, 기초 설정을 하자.

yum install mysql-server

를 수행하여 mysql 서버를 설치하자.

설치가 완료되면,

service mysqld start

를 실행시킨다.
친절하게 안내문이 나오는데,

/usr/bin/mysqladmin -u root password 'new-password'

를 수행하여, root에 새 비밀번호를 할당해 주라고 한다.

혹은 위의 방법 대신,

/usr/bin/mysql_secure_installation

을 실행하라고 안내문도 뜬다.

mysql_secure_installation을 실행시켜 보자.
이것저것 interactive하게 묻는다.

* Set root password? [Y/n]
* Remove anonymous users? [Y/n]
* Disallow root login remotely? [Y/n]
* Remove test database and access to it? [Y/n]
* Reload privilege tables now? [Y/n]

3. Jira 다운로드/설치
atlassian에서 jira를 다운로드한다. bin/ tar.gz/ war 형식
등이 있으니 원하는 것으로 다운로드 하면 된다. (그러나, 결국 어떤 형식으로 받아도 나중에 확인해보면 web application일 뿐이다.)

wget http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.1-x64.bin

로부터 jira를 임의의 디렉토리에 다운로드 한다. (어차피 세부 디렉토리 설정 등은 추후 인스톨 과정에서 설정할 것이다.)
만약, bin 파일이 아닌 다른 형식의 파일을 다운로드했다면, 직접 디렉토리도 생성하는 등의 관리를 해줘야 할 수도 있다.

admin 권한이 없는 계정으로부터 jira를 설치하려고 하면, 시스템 권한이 없다고 에러를 보게 될 것이다.
따라서, 계정에 시스템 권한을 주고 설치를 하거나, 나중에 후조치를 하면 될 것이다.

설치의 편의상 우선 root로 진행하였다.

chmod +x atlassian-jira-6.2.1-x64.bin
./atlassian-jira-6.2.1-x64.bin

다음의 메시지가 나오면서 설치가 진행된다.
내 경우는, Advanced Option으로 설치를 진행시켰고,
디렉토리는 각각 아래와 같이 명시했다.

Unpacking JRE ...
Starting Installer ...
Mar 22, 2014 6:29:55 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.

This will install JIRA 6.2.1 on your computer.
OK [o, Enter], Cancel [c]

Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (use default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing JIRA installation [3]
2

Where should JIRA 6.2.1 be installed?
[/opt/atlassian/jira]

Default location for JIRA data
[/var/atlassian/application-data/jira]
/var/atlassian/jira/data
Configure which ports JIRA will use.
JIRA requires two TCP ports that are not being used by any other
applications on this machine. The HTTP port is where you will access JIRA
through your browser. The Control port is used to Startup and Shutdown JIRA.
Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]
8090
Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]

JIRA can be run in the background.
You may choose to run JIRA as a service, which means it will start
automatically whenever the computer restarts.
Install JIRA as Service?
Yes [y, Enter], No [n]

4. 계정/권한 변경
jira 계정을 만들고 owner를 변경해 준다.

useradd jira
passwd jira

chown -R jira:jira /opt/atlassian
chown -R jira:jira /var/atlassian

5. 실행
jira를 설치한 곳의 bin 디렉토리에 가면, tomcat 관련 파일들이 보이고 익숙해 보이는 shell 들이 눈에 띈다.
startup.sh를 실행시키고 브라우저에서 접속 여부를 확인하자.

첫 실행시 다소 시간은 걸리겠지만, 잠시 후 다음과 같은 화면이 뜨면 일단 설치는 된 것이다.
이후 세부 설정을 하자. (다음 포스트)

welcome

Written by everydayminder

March 23, 2014 at 22:56

Posted in tools

Sonar + Jenkins 설정

leave a comment »

현재 Jenkins를 통해 CI(Continuouse Integration)를 하고 있고,
코드의 정적 분석을 FindBugs, PMD, CheckStyle을 써서 리포트를 보고 있긴 하지만,
Sonar를 접하고 설치/ 사용해보고자 한다.

Sonar는 http://www.sonarqube.org에서 세부 정보를 확인할 수 있다.
Installation Guide 링크를 따라 가보니, Confluence를 사용하여 위키를 꾸며놨다.

“Get Started in Two Minutes”의 설명에 따르면,
설치하고, 실행하는 방법은 무척이나 단순해 보인다.

1. SonarQube 배포판을 압축풀고, 실행시킨다.
2. SonarQube Runner 배포판을 압축풀고, 실행시킨다.
3. 샘플 프로젝트를 압축풀고, sonar-runner를 실행시켜서 분석시킨다.
4. 결과를 화면에서 확인한다. (http://localhost:9000)

여기까지 사실로부터 유추할 수 있는 사실은,
– SonarQube는 서버 프로그램이다.
– SonarQube는 클라이언트 프로그램이다. (소스 분석을 위해 실행시켜야 함)
– 별도의 웹서버/DB 설정이 필요없다.

정도이다.

Sonar에 대한 소개/분석 자료를 통해 좀더 알아보면,

Sonar가 지원하는 DBMS는

Apache Derby (내장)
mySQL
Oracle
PostgreSQL
MS-SQL Server

등이다.

설치에 앞서 JDK가 1.5+으로 설치되어 있어야 하며,
Runner(소스 분석을 위해 실행시키는 프로그램)로는
– SonarQube Runner
– Maven
– Ant
를 지원한다고 한다.

따라서, 앞서 언급한 Installation guide는 최소한의 설정으로 가장 빨리
한 번 실행시켜보기 위한 설정이라 할 수 있다.

0. 설치/테스트 환경
OS : Windows7 (64)
JDK : JDK1.6
DB : –

1. 설치
압축을 풀고 (c:\dev\sonarqube-4.0, 이하 $SONAR_HOME), $SONAR_HOME\bin\windows-x86-64\bin에
있는 SartSonar.bat를 실행시킨다.

wrapper | --> Wrapper Started as Console
wrapper | Launching a JVM...
jvm 1 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
jvm 1 |
jvm 1 | 2013.12.18 11:02:42 INFO Web server is started

와 같은 메시지가 보이면서 시작되었다.
브라우저를 통해, localhost:9000으로 접속해봐도 화면이 휑하다.
Sonar의 기본 관리자 계정 정보는 admin:admin이니 접속해 보자.

2. 환경설정 확인
$SONAR_HOME\conf\sonar.properties 파일을 확인해 보자.
별도 DB 설정을 하지 않았기에, Apache Derby 내장 DBMS를 사용하도록 설정된 채이다.

sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

#—– Embedded database H2
# Note: it does not accept connections from remote hosts, so the
# SonarQube server and the maven plugin must be executed on the same host.

# Comment the following line to deactivate the default embedded database.
sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar

와 같은 문구가 보이고,
그 밑으로는 Sonar가 지원하는 여러 다른 종류의 DBMS의 configuration들이 주석처리 되어 있다.
해당 DBMS를 사용할 경우, 변경하여 사용하면 될 것 같다.

3. 프로젝트 분석은 어떻게?
Sonar는 분석 결과를 보여주는 웹 애플리케이션이고, 결국 분석은 다른 프로그램들이 도와줘야 한다.
http://docs.codehaus.org/display/SONAR/Analyzing+Source+Code
에 안내된 바에 따르면,

프로젝트 분석은 아래의 방법중 하나를 택하면 된다.
Analyzing with SonarQube Runner (recommended analyzer)
Analyzing with SonarQube Ant Task
Analyzing with Maven
Analyzing with Gradle
CI Engines

Sonar에 안내된 2분안에 시작하기 튜토리얼에서도 샘플 프로젝트 디렉토리로부터, SonarQube Runner를
실행시키는 것으로 프로젝트 등록/분석을 시도하였다.

결국, Runner 등과 같은 프로그램이 분석 결과를 DBMS에 기록을 하면, Sonar 웹은 그 데이터를 DB로부터 읽어서
보여줄 뿐일 것이다.

프로젝트 등록을 위한 UI도 존재하지 않는 것 같은데, 공식 도움말에서도 이런 문구를 발견할 수 있다.
Adding a project to SonarQube is not done through the web interface, but automatically when the project is analyzed for the first time.

어쨌든, 프로젝트를 등록하기 위해서는 일단 분석을 한 번 시도하면 된다는 이야기이다.

4. Jenkins + Sonar 설정
나는 Jenkins를 이미 사용하고 있으므로, Jenkins에 Sonar 설정을 하는 방법에 대해 살펴보고자 한다.
Jenkins에 Maven 관련 설정이 되어있다고 가정한다.

Jenkins 관리 > 플러그인관리 > Sonar 관련 플러그인들을 찾아 설치한다. (Jenkins Sonar Plugin, Sonargraph Plugin)
이후, Jenkins를 재시작하고, Jenkins의 global 설정으로부터 Sonar 환경설정을 하자.

Jenkins 관리 > 시스템설정 > Sonar (고급 메뉴) 관련 항목을 지정한다.
Apache Derby 사용 및 기본 설정으로 그대로 사용한다면, 아마 다음과 같이 입력하게 될 것이다.

Server URL : http://localhost:9000
Sonar account login : admin
Sonar acocun password : admin
Database URL : jdbc:h2:tcp://localhost:9092/sonar
Database login : sonar
Database password : sonar

Sonar Runner에 대한 설정은 별도로 수행하지 않았다.
프로젝트 설정의 Post-build Actions로부터 Sonar를 선택하고, jdk 설치 정보만 변경하고 저장하였다.
(다른 설정은 디폴트 사용)

이후, 빌드를 수행하면, 해당프로젝트의 대시보드에도 Sonar 아이콘이 생겨있고, 링크도 클릭가능하다.
해당 링크를 클릭하면, 결국 처음에 설정한 바와 같이 http://localhost:9000으로 리다이렉션 될 것이다.
그리고, 이전에 비어있던 화면에 무언가 정보가 채워져 있는 것을 발견할 수 있다.
당연히, Jenkins를 통하지 않고도, 브라우저에서 직접 http://localhost:9000을 접속하면 동일한 화면을 볼 수 있다.
(DB에 분석 데이터가 있으니까)

볼 수 있는 내용들은 다음과 같다.
Lines of code
Documentation
Duplications
Complexity
Issues
Package tangle index
Unit Tests Coverage

해당 항목들을 클릭하면, 상세 내용을 볼 수 있다.
이슈들을 클릭하면, 어떤 부분이 문제가 되고, 어떻게 해결하면 좋을지도 조언해 주기 때문에
코드의 퀄리티를 높이는데 큰 도움이 될 것 같다.

Jenkins에 이미 SCM 관련 설정을 해두어, 소스코드 변동에 따른 폴링/자동 빌드를 설정해 두었기 때문에
소스 변동시마다 Sonar도 분석을 자동으로 업데이트 하게 되었다.

5. Maven 단독
Maven으로 소스 분석을 하려면, maven 관련 설정을 변경해줘야 한다.
Sonar에 공식적으로 안내된, maven 설정은

<settings>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!– Example for MySQL–>
<sonar.jdbc.url>
jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>

<!– Optional URL to server. Default value is http://localhost:9000 –>
<sonar.host.url>
http://myserver:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>

실행은,
mvn clean install -DskipTests=true
mvn sonar:sonar
와 같이 실행하면 된다.

그런데, 위의 설정만으로는 실제 사용시 번거로울 것 같다.

위의 설정에서 언급한 바와 같이, 분석을 어떻게 수행하느냐의 문제에 대해 생각해 보자.
Jenkins에 설정한 경우,
– Who : Jenkins
– How : Maven 또는 Runner
– When : 소스 변경이 되었을 때
로 생각할 수 있는데 비해,

Maven으로 단독 설정할 경우,
– Who : 사용자
– How : Maven
– When : 사용자가 명령어를 실행할 경우
가 되어 버린다. 결국, 소스를 사용자가 직접 최신 버전으로 업데이트 한 후, maven 명령어를 돌려야 의미가 있을 것이다.

즉, 소스 변경과 함께 자동으로 최신 소스를 검사할 수 있도록 설정하지 않고서는 별도의 maven 실행을 통한 소스 검사만으로는
활용도가 낮아진다.

6. 요약
– Jenkins와 같은 CI tool과 연계해서 Sonar 검사를 하도록 하거나
– 열심히 알아서 소스 갱신/ 검사 돌리자.

* SCM Activity라는 플러그인이 있는 것을 확인했으나, 주기적으로 폴링하여 소스를 가져오고 검사하는 용도가 아닌
SCM blame 정보를 출력해주기 위한 용도인 듯하다. (http://docs.codehaus.org/display/SONAR/SCM+Activity+Plugin)

*  소스 정적 검사 및 해결책 제시가 제법 괜찮다. 쓸만 한 것 같다.

Written by everydayminder

December 26, 2013 at 23:01

Posted in java, tools, Uncategorized

Tomcat Web Application 모니터링 툴 – javamelody 설정 방법

leave a comment »

Tomcat Web Application을 모니터링하거나, profiiling하기 위한 괜찮은 툴을 소개한다.

Javamelody(https://code.google.com/p/javamelody)를 설정하는 방법은 무척 간단하다.

1. Jar 설정
WEB-INF/lib 내 javamedloy.zip내의 javamelody.jar와 jrobin-x.jar를 복사한다.
내 경우는 maven 을 사용하므로, 기존의 pom.xml에 다음과 같이 dependency를 추가하였다.

 <dependency>
 <groupId>net.bull.javamelody</groupId>
 <artifactId>javamelody-core</artifactId>
 <version>1.43.0</version>
 </dependency>
 

2. web.xml 설정
기존에 실행하던 웹 애플리케이션을 모니터링/분석해야 하므로, web.xml의 내용을 편집한다.
보통 web.xml에서는 선언된 순서로 우선순위를 지니므로, 다른 서블릿 선언보다 위쪽에 다음의
설정을 추가로 기록한다.

 <filter>
 <filter-name>monitoring</filter-name>
 <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
 </filter>
 <filter-mapping>
 <filter-name>monitoring</filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>
 <listener>
 <listener-class>net.bull.javamelody.SessionListener</listener-class>
 </listener>
 

3. 동작 확인
기본 설정은 이것으로 일단 끝!
이제 web application을 실행시키자.

 http://<host>/<context>/monitoring
 

과 같이 실행시키면, 기존 사이트에 대한 모니터링 페이지가 정상 적으로 보일 것이다.
대략 다음과 같은 화면이 뜬다.
http://javamelody.googlecode.com/svn/trunk/javamelody-core/src/site/resources/screenshots/graphs.png

4. 보안설정(ID/Password 기반)
role 기반으로 간략하게 보안 설정을 해보자. web.xml에 다음의 내용을 추가한다.

 <login-config>
 <auth-method>BASIC</auth-method>
 <realm-name>Monitoring</realm-name>
 </login-config>

<security-role>
 <role-name>monitoring</role-name>
 </security-role>

<security-constraint>
 <web-resource-collection>
 <web-resource-name>Monitoring</web-resource-name>
 <url-pattern>/monitoring</url-pattern>
 </web-resource-collection>
 <auth-constraint>
 <role-name>monitoring</role-name>
 </auth-constraint>
 </security-constraint>
 

만약, 이대로 tomcat을 restart하고, /monitoring으로 접근한다면, HTTP BASIC Authentication으로 인증 요청을 할 것이다.

5. tomcat-user 추가
위의 인증창에 접근할 수 있는 사용자를 추가하자.
tomcat-users.xml을 찾아 다음과 같이 사용자 정보를 추가한다.

 <tomcat-users>
 ..
 <role rolename="monitoring"/>
 <user username="monitoring" password="monitoring" roles="monitoring" />
 ..
 </tomcat-users>
 

이제 Tomcat을 재시작하고, BASIC authentication popup window가 뜨면, 위의 정보로 인증하고, 처음에 본 모니터링 페이지가 정상적으로 뜨는지 확인한다.

Written by everydayminder

August 1, 2013 at 02:20

Posted in Apache/Tomcat, java, tools

Toad + Oracle Thin Client

leave a comment »

우선, Oracle 사이트에서 oracle thin client를 다운로드 해야 한다.
이 때, 본인이 실제 사용하는 OS의 bit가 아닌, Toad의 bit와 동일한 버전의 thin client가 필요하다.
즉, 64bit Windows라도 32bit Toad 라면, 32bit Oracle thin client 설치 필요.

이후, 환경 설정은 Oracle thin client의 환경 변수 설정이다.
1. regedit를 통해 레지스트리를 변경하거나,
2. 시스템 환경변수로 선언하거나,
3. batch 파일내 선언하여 toad가 실행될 때 참조하도록 하는 방법 등이 있다.

설정의 편의상 3 방법이 가장 편할 것이다.
1. 레지스트리 변경

regedit를 실행하고, 아래 내용을 등록한다.
HKEY_LOCAL_MACHINESOFTWAREORACLE내
ORACLE_HOME=설치위치
NLS_LANG=KOREAN_KOREA.KO16MSWIN949

2. 시스템 환경변수로 선언

PATH에 Oracle thin client 경로 추가
ORACLE_HOME=설치위치
TNS_ADMIN=설치위치
NLS_LANG=KOREAN_KOREA.KO16MSWIN949

3. batch 파일로 등록

set PATH=설치위치;%PATH%
set ORACLE_HOME=설치위치
set TNS_ADMIN=설치위치
set NSL_LANG=KOREAN_KOREA.KO16MSWIN949
start "toad" "toad설치위치"

Written by everydayminder

July 23, 2013 at 06:04

Posted in tools

Eclipse내 jUnit static import를 위한 설정

leave a comment »

jUnit4 이상을 사용하면서, hamcrest의 도움 없이는 온전한(가독성이 좋은) test case들을 작성하기 어렵다.

그런데, 이 jar들을 매번 import하자니 어렵고, 겨우 import해 놓으면 ctrl + shift + o를 누르는 순간 증발하기 일쑤다.

많은 개발자들도 이러한 점을 힘들어하여, 각 블로그에 여기저기 많이 남겨놓으셨다.

나도 이참에 기록을 남긴다.

1. static import할 라이브러리 등록하기

– Windows > Preferences >Java > Editor > Content Assist > Favorites 메뉴로 간다.

– New Type을 클릭하고 다음과 같은 라이브러리를 등록한다.


org.hamcrest.CoreMatchers.*

org.hamcrest.Matchers.*

org.junit.Assert.*

2. *로 대체하기 기능 설정

– Windows > Preferences > Java > Code Style > Organize Imports 메뉴로 간다.

– Number of static imports needed for .* (몇 번 이상 겹치면 *로 처리해줄까?) 의 숫자를 변경한다. (예 : 99 -> 1)

Written by everydayminder

July 10, 2013 at 10:45

Posted in java, TIPs, tools

hudson + maven + PMD plugin

leave a comment »

Hudson에 연결한 maven 프로젝트에 PMD 플러그인을 설정해 본다.

우선 프로젝트의 confiruation에서 Publish PMD analysis results를 체크한다.

그리고, 설정을 저장한 다음 Build Now 해보자.
변화가 없다.

pom.xml을 바꾸자.
dependency 부분에 pmd plugin 선언을 하고,

               
        
            org.apache.maven.plugins
            maven-pmd-plugin
        

reporting 부분에 pmd 관련 설정을 기록한다. 이 때, PMD에서 검사하는 ruleset도 함께 지정한다. 만약, annotation 등을 썼다면, jdk 버전이 문제가 될 수 있으므로,
configuration에 jdk 버전도 함께 명시하자.

        
        
            org.apache.maven.plugins
            maven-pmd-plugin
            
                utf-8
                1.6
                
                    /rulesets/basic.xml
                    /rulesets/unusedcode.xml
                    /rulesets/junit.xml
                
            
        

Build 옵션 중
Goals and options에 pmd:pmd를 추가로 적어주자.

이제 Build Now를 하고 결과를 보자.
정상적으로 실행되었다면,  다음과 같이 왼쪽 메뉴에 PMD 관련 메뉴가 추가된 것을 확인할 수 있다.

 
PMD Warnings를 클릭하면, 세부 사항이 나타난다.

 

Written by everydayminder

November 30, 2011 at 09:54

Posted in tools

Tagged with , ,

hudson + maven + findbugs

leave a comment »

Hudson에 설정한 maven 프로젝트에 findbugs를 설정하자.
pom.xml에 설정할 부분은 build와 reporting 두 곳이다.

               
        
            org.codehaus.mojo
            findbugs-maven-plugin
            
                
                    package
                    
                        check
                     
                
                           
        

<build><plugins> .. </plugins></build> 사이에 다음을 추가한다.

    
        
        
            org.codehaus.mojo
            findbugs-maven-plugin
        
    
  

그리고, 다음 부분을 추가하여, reporting 부분을 정의한다.
 
프로젝트 설정에서, FindBugs부분을 선택한다.

저장 후, 다시 Build Now를 해보자.
성공하면, FindBugs Warnings 메뉴가 나타난다.

 문제가 있는 클래스를 찾아가면, FindBugs가 개선 점을 알려준다.

 

Written by everydayminder

November 30, 2011 at 08:09

Posted in tools

Tagged with , ,

hudson + maven project 설정하기

leave a comment »

Hudson에 maven 프로젝트를 설정해 보고자 한다.
기존에 작성된 maven 프로젝트가 있다고 가정하자.

1. Hudson에 연동할 기존 maven 프로젝트 준비 또는 신규 maven 프로젝트 준비

 
즉, 이렇게 생겼다고 가정하자. pom.xml이 존재하는 maven 프로젝트 파일이다.
src 폴더에는 원본 소스파일과 함께 테스트 코드도 작성해 두었다. 

2. Hudson, 새 프로젝트 만들기

다음과 같이 새 프로젝트를 만든다. Maven 연계 프로젝트를 선택한다.
(물론, 이를 위해 Hudson – Maven 관련 플러그인이 설치되어 있어야 할 것이다.)
 

3. 소스 위치 지정하기
CVS, SVN, Git 등을 활용하여, 소스를 가져올 위치를 지정한다.

 위치를 지정하고, 필요하면 계정정보 설정까지 마친다.

주기적으로 build 필요성 여부를 검사하고, build 시키기 위해 trigger 옵션을 설정한다.

일단, 여기까지 하고 save하자.

프로젝트가 정상적으로 생성되었다면, 다음과 같이 나타날 것이다.

일단, Build Now를 클릭하고, 정상적으로 설정되었는지 검사하자.

테스트 코드까지 정상적으로 실행이 되었다면, 다음과 같이 나타날 것이다.

다음에는, hudson에서 사용하는 플러그인을 설정해 봐야겠다.

Written by everydayminder

November 29, 2011 at 10:56

Posted in tools

Tagged with , , ,