everydayminder

learn something everyday

Archive for October 2011

maven – Eclipse에서 maven project + WTP 사용하기

leave a comment »

바로 이전 포스트에서는 command에서 maven project를 만들고, 그것을 eclipse에서 사용할 수 있도록
바꾸고 곧바로 WTP에서 인식할 수 있도록 하는 방법에 대해 소개했다.

이번에는 직접 eclipse에서 프로젝트를 생성하고, WTP에서 사용할 수 있는 방법에 대해 써보고자 한다.

1. maven 프로젝트 생성

 File > New > Other > Maven > Maven Project를 선택한다.

archetype은 webapp로 지정한다.

 
 

2. 프로젝트 파일 세부 설정하기

프로젝트를 생성하면, 위와 같은 구조로 생성이 된다. 언제나 그랬듯이, 디렉토리 구조를 변경하고 싶다. junit은 3.8.1로 되어 있어서, 버전도 바꾸고 싶고. 이 작업을 해보자.

프로젝트의 properties를 바꿔보자. (프로젝트 view에서 context 메뉴 띄우고, properties)

Project Facets를 선택하자. 
우측의 Convert to faceted form..을 선택하자.

그러면, 다음의 화면이 뜬다.

 JavaScript를 선택하고, Dynamic Web Module을 선택한다.

Dynamic Web Module의 버전을 고르자. Tomcat 7의 경우, 3.0으로 해도 되나, Tomcat 6이라면 2.5로 하자.
하단의 Further configuration available..을 클릭한다.

Context root에 웹 애플리케이션에서 사용할 context root를 입력한다. 
Content directory에 web content를 저장할 디렉토리를 입력한다. eclipse에서의 디폴트 값은 WebContent이고, 커맨드에서 maven 프로젝트를 생성하면 webapp로 지정될 것이다.


3. 디렉토리/ pom.xml 변경하기

사용할 junit의 버전을 3.8.1에서 4.8.2로 변경하고, webapp의 위치를 pom.xml에 반영하자.

  4.0.0
  com.luran
  secondweb
  war
  0.0.1-SNAPSHOT
  secondweb Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      4.8.2
      test
    
  
  
    secondweb
  
    
      maven-war-plugin
      
        webapp
      
    
    
  


Java Resources 탭에서 context 메뉴를 띄워서 Source Folder를 생성하자. (src/java, src/java/resources, src/test, src/test/resources)

디폴트로 생성된 src/main/* 등은 삭제하자.
생성된 디렉토리의 구조는 다음과 같다.

4. WTP에 연동하기

Servers 탭에 지금 생성한 secondweb 프로젝트를 추가한다. (Add and remove)

 

이제 웹 애플리케이션을 시작시켜서 테스트할 수 있다.

http://localhost:8080/secondweb으로 접속하면, 위와 같은 화면을 볼 수 있다.

Written by everydayminder

October 31, 2011 at 09:08

Posted in tools

Tagged with , ,

maven – maven project를 eclipse + WTP에서 사용가능하게 바꾸기

leave a comment »

eclipse에서 web project를 작성하게 되면 사용하게 되는 것이 WTP이다.
그러나, 앞서 maven 프로젝트를  생성한 것만으로는 자동으로 WTP와 연동이 되지 않는다.
이를 위해 설정을 바꿔보자.

1. 테스트 프로젝트 만들기

interactive 모드로 프로젝트를 생성한다.

mvn archetype:generate -DarchetypeCatalog=internal

목록에서 “19: internal -> org.apache.maven.archetypes:maven-archetype-webapp”. 19번 선택.
groupId : com.luran 입력
artifactId : firstweb
1.0-SNAPTSHOT : 엔터
package : 엔터



2.  pom.xml 바꾸기, 디렉토리 구조 바꾸기

  4.0.0
  com.luran
  firstweb
  war
  1.0-SNAPSHOT
  firstweb Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      4.8.2
      test
    
  
  
    firstweb
    src/java
    src/test
    target/classes
    target/test-classes
    
       
	   src/java/resources
       
    
    
       
	   src/test/resources        
       
    
    
        
            maven-war-plugin
            
                webapp
            
        
    
  

디렉토리 구조를 위의 pom.xml에 맞춰 바꾸자.

변경 전의 디렉토리 구조는 다음과 같다.


pom.xml에 표기한 대로 바꾼 후의 디렉토리 구조는 다음과 같다.


바꾼 후에, mvn package를 실행하면 다음과 같이 다른 디렉토리가 생성되는 것을 확인할 수 있다.


3. Eclipse화시키기

현재 파일 상태를 eclipse에서 사용하기 편하게 mvn에서 기능을 제공한다.
pom.xml이 있는 곳에서 mvn eclipse:eclipse라고 하면 pom.xml을 기반으로 eclipse 설정을 만들어 줄 것이다.

변경 전은 다음과 같다.


pom.xml이 있는 곳에서,

mvn eclipse:clean eclipse:eclipse

 를 실행하면 다음과 같이 .classpath, .project, .settings가 생성되는 것을 확인할 수 있다.
 

이제 제대로 인식되는지 eclipse에서 읽어들여보자. 

4. WTP에서 인식되게 하기

WTP에서 사용할 수 있도록 하기 위해, pom.xml에 다음의 설정을 추가한다.

		
			maven-eclipse-plugin
			2.8
			
				2.0
				/
			
		

그리고, 다시 mvn eclipse:clean eclipse:eclipse 를 실행하자.

기존 프로젝트 파일을 import 시켜보자.

5. WTP용 WAS Server 등록
File > New > Other > Server > Server 를 선택한다.
그러면, 사용할 서버의 종류를 선택할 수 있다.


6. WTP 서버에 연동하기

서버를 생성한 직후 또는 별도 생성 후, Java EE 뷰의 Servers 탭에서 웹서버에 firstweb 을 추가할 수 있다.
Add and remove를 선택하면 창이 뜨고, 이 창에서 해당 웹 애플리케이션을 추가하자.

그러면, 위와 같이 해당 항목에서 context 메뉴를 띄워서 웹 애플리케이션을 시작/ 중지시킬 수 있게 된다.
web.xml 등의 별도 설정을 하지 않은 상태에서의 테스트는 다음과 같다.

Written by everydayminder

October 27, 2011 at 00:02

Posted in tools

Tagged with , , ,

maven – eclipse indigo + m2eclipse

leave a comment »

2011/6/22에 릴리즈된 Eclipse Indigo의 기능중, 

* m2eclipse에 대한 지원이 강화되었다는 것
* myln을 통해 Hudson을 연동할 수 있다는 것

등의 이유로, Helios에서 Indigo로 업그레이드 해보려고 한다. (그냥 다시 설치)
 
1. m2e plugin 설치
최신 m2eclipse 플러그인 이름이 m2e로 변경되었다.
Help > Install New Software 에서 m2e를 찾아보자.

Collaboration 밑에 m2e 항목을 발견할 수 있다.


 

체크를 하고 설치하자.


“Finish”를 하면, 프로젝트가 생성된다.
생성된 디렉토리 구조는 다음과 같다. 
 

생성된 pom.xml은 아래와 같다. 

기존의 WTP 프로젝트는 등록한 WAS에 곧바로 연결하여 사용할 수 있는데, 현재 maven으로 만든 프로젝트는 WAS에 곧바로 사용할 수가 없다. (불편하다!)

일단, 이렇게 생성한 프로젝트가 정상적으로 실행되는지부터 살펴보고 나중에 환경 설정을 바꿔보자.

mvn package를 실행하면, target 디렉토리내 myweb.war이 생성된다.
$CATALINA_HOME/webapps에 myweb.war를 복사하고,
웹 브라우저에서 http://localhost:8080/myweb을 실행하면,

과 같이, Hello World!가 출력된다.
그러나, 매번 이렇게 war 파일을 복사하는 건 너무 불편하다. 분명 더 쉽게 쓰는 방법이 있을 것이다.

Written by everydayminder

October 21, 2011 at 06:42

Posted in tools

Tagged with , , , ,

maven – 템플릿을 사용하여 web project 만들기

leave a comment »

1. 사용가능한 템플릿은?
maven에서 기본적으로 제공하는 archetype은 다음의 사이트에서 찾아볼 수 있다.

http://docs.codehaus.org/display/MAVENUSER/Archetypes+List 

목록 중, 다음의 항목이 눈에 들어온다.
“simple java web application”

maven-archetype-webapp org.apache.maven.archetypes     A simple Java web application

 
archetype을 maven-archetype-webapp로 지정하여 만들어 보자.
일단, quick-start를 했을 때처럼 다음과 같이 입력해 보았다.

mvn archetype:generate -DgroupId=com.luran -DartifactId=myweb -DarchetypeArtifcatId=maven-archetype-webapp -DinterfactiveMode=false

프로젝트는 만들어졌는데, 중간에 출력된 메시지를 보니, 그냥 quick-start로 만들어졌다고 뜬다. (왜?)

그래서, interactive 모드로 다시 한 번 해본다.

mvn archetype:generate -DarchetypeCatalog=internal

목록에서 “19: internal -> org.apache.maven.archetypes:maven-archetype-webapp”를 발견했다. 19번 선택.
groupId : com.luran 입력
artifactId : myweb
1.0-SNAPTSHOT : 엔터
package : 엔터

이제 프로젝트가 정상적으로 생성된 것을 확인할 수 있다.

2. 생성한 프로젝트 확인
1) 생성한 직후


2) mvn test를 수행한 후


   * target/classes가 추가되었다.

3) mvn package를 수행한 후

    * target에 maven-archiever, myweb, war 등이 추가되었다.

 

3. 디렉토리 구조를 변경하자
지금 생성된 구조는 너무 복잡해 보인다.
기존에 작업하던 것과 같이, src/test를 빼내고, web 리소스는 WebContent 디렉토리 밑에 넣어보자.

생성된 pom.xml에는 다음과 같이 디렉토리에 대한 설정이 보이지 않는다.

  4.0.0
  com.luran
  myweb
  war
  1.0-SNAPSHOT
  myweb Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      4.8.2
      test
    
  
  
    myweb
  


그런데, 어떻게 바꾸면 될까?

mvn help:effective-pom

을 실행하면,  최상의 POM 설정을 확인할 수 있다.
본인이 실행한 결과는 다음과 같았다.

  4.0.0
  com.luran
  myweb
  1.0-SNAPSHOT
  war
  myweb Maven Webapp
  http://maven.apache.org
  
    C:devmvntestmywebsrcmainjava
    src/main/scripts
    C:devmvntestmywebsrctestjava
    C:devmvntestmywebtargetclasses
    C:devmvntestmywebtargettest-classes
    
      
        resource-0
        C:devmvntestmywebsrcmainresources
      
    
    
      
        resource-1
        C:devmvntestmywebsrctestresources
      
    
    C:devmvntestmywebtarget
    myweb
    
      
        
          maven-antrun-plugin
          1.3
        
        
          maven-assembly-plugin
          2.2-beta-2
        
        
          maven-clean-plugin
          2.2
        
        
          maven-compiler-plugin
          2.0.2
        
        
          maven-dependency-plugin
          2.0
        
        
          maven-deploy-plugin
          2.4
        
        
          maven-ear-plugin
          2.3.1
        
        
          maven-ejb-plugin
          2.1
        
        
          maven-install-plugin
          2.2
        
        
          maven-jar-plugin
          2.2
        
        
          maven-javadoc-plugin
          2.5
        
        
          maven-plugin-plugin
          2.4.3
        
        
          maven-rar-plugin
          2.2
        
        
          maven-release-plugin
          2.0-beta-8
        
        
          maven-resources-plugin
          2.3
        
        
          maven-site-plugin
          2.0-beta-7
        
        
          maven-source-plugin
          2.0.4
        
        
          maven-surefire-plugin
          2.4.3
        
        
          maven-war-plugin
          2.1-alpha-2
        
      
    
    
      
        maven-help-plugin
        2.1.1
      
    
  
  
    
      
        false
      
      central
      Maven Repository Switchboard
      http://repo1.maven.org/maven2
    
  
  
    
      
        never
      
      
        false
      
      central
      Maven Plugin Repository
      http://repo1.maven.org/maven2
    
  
  
    
      junit
      junit
      4.8.2
      test
    
  
  
    C:devmvntestmywebtarget/site
  

위의 데이터를 참조하여, 원래 pom.xml에 추가해 보자.
바꿀 항목은,

  • sourceDirectory
  • testSourceDirectory 
  • outputDirectory
  • testOutputDirectory
  • resources
  • testResources

 등 절대 경로로 되어 있는 부분이다.

  4.0.0
  com.luran
  myweb
  war
  1.0-SNAPSHOT
  myweb Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      4.8.2
      test
    
  
  
    myweb
    src/java
    src/test
    target/classes
    target/test-classes
    
       
	      src/resources
       
    
    
	   
    	   test/resources	    
	   
    
    
	
   	  maven-war-plugin
		
			WebContent
		
	
    
  


pom.xml에 표기한 바와 같이 디렉토리의 구조를 변경했다.
다시

mvn package

를 실행하면, Build Successful이 나타나고, 다음과 같은 디렉토리 구조가 생긴다.

 

Written by everydayminder

October 16, 2011 at 07:57

Posted in tools

Tagged with , , ,

maven – 설치/ 테스트

leave a comment »

1. maven 설치

* 다운로드 사이트 : http://maven.apache.org
 
maven은 위 사이트에서 받을 수 있다. 2011/10/13 현재, 버전 3.0.3이 최신이지만, 기존 프로젝트의 호환성과 안정성 측면에서
옛날 버전이지만 2.2.1을 설치하고, 테스트해 보기로 한다.

apache-maven-2.2.1-bin.zip을 다운받아, 나의 작업 디렉토리인 c:devmaven2에 설치한다.
환경변수 MAVEN_HOME을 선언하고, 위 경로를 지정한다. path에  %MAVEN_HOME%bin을 추가한다.

 “mvn -version”을 입력해보자.

2. 공식 가이드

당연히, apache에서는 공식 가이드(http://maven.apache.org/guides)를 제공하고 있다.
틈틈이 읽어보는 것이 좋을 것 같다. 가이드에는 다음의 내용이 기술되어 있다.

  • 5분 이내 maven 사용하기
  • 30분 이내 maven 사용하기
  • 라이프 사이클 
  • POM
  • repository
  • archetype

3. 5분 + 30분 가이드를 따라해 보자

mvn archetype:generate -DgroupId=com.luran -DartifactId=test 
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

위와 같이 변경하여 실행하였다.

생성된 디렉토리 구조는 아래와 같다.

test
|-- pom.xm
l`-- src
|-- main
| `-- java
| `-- com
| `-- luran
| `-- App.java
`-- test
`-- java
`-- com
`-- luran
`-- AppTest.java

저절로 생성된 pom.xml은 아래와 같다.

  4.0.0
  com.luran
  test
  jar
  1.0-SNAPSHOT
  test
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    
  

이제 가이드에 나와있는 것처럼, build를 해보자.

mvn package


굉장히 많은 jar 파일들을 알아서 다운로드 하는 것을 볼 수 있다.
(이 많은 파일들은 다 어디로 갔을까?) 

빌드하고 나서, 실행한 결과는 다음과 같다.

 
 
USER_HOME/.m2에 위에서 받은 jar 파일들이 저장된다.
내 PC에서의 USER_HOME = c:/Users/luran이므로 c:/Users/luran/.m2를 확인하면,
repository 디렉토리가 생성되어 있고, 그 내부에 다음과 같이 하위 디렉토리와 jar 파일들이 있는 것을 확인할 수 있다.

그런데, 공식 가이드에 소개된 pom.xml과 달리 내가 따라 만든 프로젝트의 pom.xml에는 junit의 버전이 3.8.1로 되어 있다.
local repository에 가보면, junit디렉토리에, 3.8.1과 4.8.2가 다운로드 되어 있는 것을 확인할 수 있다.

지금, 3.8.1 디렉토리에는
 – junit-3.8.1.jar
 – junit-3.8.1.jar.sha1
 – junit-3.8.1.pom
 – junit-3.8.1.pom.sha1

이 있고, 4.8.2 디렉토리에는
  – junit-4.8.2.pom
  – junit-4.8.2.pom.sha1

만 있다. 그러면, pom.xml에 써놓은 junit의 버전을 3.8.2로부터 4.8.2로 바꾸면?
mvn pakcage를 다시 실행해보자.

화면에 나타난 것처럼, junit-4.0과 4.8.2를 다운로드하는 것을 볼 수 있다. (4.0까지?)
이제 local repository에 가보면, junit 디렉토리에 새로 생성된 4.0과, 내용이 달라진 4.8.2를 발견할 수 있다.

4.0 디렉토리에는
  – junit-4.0.jar
  – junit-4.0.jar.sha1
  – junit-4.0.pom
  – junit-4.0.pom.sha1

이 있고, 4.8.2 디렉토리에는 이제
  – junit-4.8.2.jar (추가)
  – junit-4.8.2.jar.sha1 (추가)
  – junit-4.8.2.pom
  – junit-4.8.2.pom.sha1
이 있다.

물론, 빌드는 성공했고, 실행 결과도 동일하다.

Written by everydayminder

October 13, 2011 at 02:02

Posted in tools

Tagged with ,

TeamCity 6.5 설치하기

leave a comment »

주로 Hudson을 썼는데, 이번에는 TeamCity를 설치하고 사용해 보고자 한다.

다운로드 사이트 : http://www.jetbrains.com/teamcity/

2011/10/11 현재 최신 버전은 6.5이며, 만들 수 있는 설정 및 사용자 수에 제약이 있지만,
Professional Edition 만으로도 테스트는 충분할 것이다.

 

플랫폼에 따라 또는 연동 방식에 따라 설치본이 나뉜다.
즉, 윈도우즈 서비스로 실행시킬 수도 있고, core만 설치하여 별도로 실행시킬 수도 있는 것 같다.

나열된 여러가지 플랫폼과 설치 방법중, 내가 택한 옵션은
“윈도우즈 플랫폼에, 기존의 J2EE 컨테이너에 설치하기”이다.

그러면, 나의 다운로드는 “JavaEE Container 탭”의 다운로드를 선택하면서 시작된다.
사이트로부터 다운로드한 파일명은 “TeamCity-6.5.4.war”이다.

Tomcat을 설치한 CATALINA_HOME의 webapps 밑에 TeamCity-6.5.4.war를 복사하는 것만으로도 1차 설치는 완료된다.
TeamCity 사이트의 가이드에 안내된 바와 같이, CATALINA_HOME/conf/server.xml의 connector 태그에,

useBodyEncodingFoRUIR = “true”

라고 추가해주고, Tomcat을 띄우면 정상적으로 동작하는 것을 확인할 수 있다.

http://localhost:8080/TeamCity-6.5.4
그 다음부터는 계정 설정하는 화면이 곧바로 뜨기 때문에 설정을 잡아주면 될 것 같다.
다만, 이 방식은 Tomcat을 항상 띄워야 하기 때문에 번거로워서, exe 파일 타입으로 다시 설치를 진행해 보았다.

다운로드한 exe파일을 실행하면, 관리포트를 물어본다.
8111로 입력하고 나면,

와 같이 뜬다.

설치를 서비스형으로 하면, 매우 간단하게 설치가 완료된다.
설치 완료 후, 곧바로 웹 페이지를 띄우라고 하면, 곧바로 지정한 포트로 관리페이지가 뜨는 것을 볼 수 있다.

“Register a New User Account”를 클릭하여 사용자 계정을 추가하자.

생성한 계정으로 로그인을 하면, 다음과 같은 화면이 나타난다.
이는 Tomcat에 연동해서 설치한 것과 exe형으로 설치한 것과 (당연히) 동일한 화면이다.

 

Written by everydayminder

October 11, 2011 at 08:51

Posted in tools

사용하는 기본 캐릭터셋 변경

leave a comment »

* 파일 : /etc/sysconfig/i18n
* 한글

LANG="ko_KR.UTF-8"

* 영어

LANG="en_US.UTF-8"

Written by everydayminder

October 11, 2011 at 07:23

Posted in linux

Tagged with ,

windows에서 커맨드로 telnet client 설치하기

leave a comment »

pkgmgr /iu:”TelnetClient”

Written by everydayminder

October 11, 2011 at 05:35

Posted in TIPs

Tagged with , , ,