블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
12-22 09:12
 

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
 

최근에 올라온 글

최근에 달린 댓글


윈도우 기준, %MAVEN_HOME%\bin\mvn.bat 를 수정합니다.

...
@REM Start MAVEN2
:runm2
set CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
set MAVEN_OPTS="-XX:MaxPermSize=364m"
%MAVEN_JAVA_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
if ERRORLEVEL 1 goto error
goto end
...

heap size 문제가 발생하면 -Xmx=512m 정도로 설정해주면 될 듯하네요~



Posted by 자수씨
, |

메이븐을 이용하여 기본적으로 제공해주는 webapp archetype 으로 프로젝트를 생성하게 되면 이클립스에서 웹 프로젝트로 인식이 되지 않습니다.

프로젝트도 아래와 같이 단순하게 구성되어 있습니다.



pom.xml 에 wtp 와 관련된 plugin 설정을 합니다.



그런 후에 eclipse:eclipse 를 goal 로 빌드를 하게 되면~




[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building gwtbuilder-webapp Maven Webapp
[INFO]    task-segment: [eclipse:eclipse]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing eclipse:eclipse
[INFO] No goals needed for project - skipping
[INFO] [eclipse:eclipse {execution: default-cli}]
[INFO] Adding support for WTP version 2.0.
[INFO] Using Eclipse Workspace: D:\**********
[INFO] no substring wtp server match.
[INFO] Using as WTP server : Tomcat v6.0 as wiseOne
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] @@@ TRUE - Manifests are equal
[INFO] Not writing Manifest file as it is unchanged: D:\**********\gwtbuilder-webapp\src\main\webapp\META-INF\MANIFEST.MF
[INFO] File D:\**********\gwtbuilder-webapp\.project already exists.
       Additional settings will be preserved, run mvn eclipse:clean if you want old settings to be removed.
[INFO] Wrote Eclipse project for "gwtbuilder-webapp-0.0.1-SNAPSHOT" to D:\**********\gwtbuilder-webapp.
[INFO]
       Sources for some artifacts are not available.
       Please run the same goal with the -DdownloadSources=true parameter in order to check remote repositories for sources.
       List of artifacts without a source archive:
         o junit:junit:3.8.1
       Javadoc for some artifacts is not available.
       Please run the same goal with the -DdownloadJavadocs=true parameter in order to check remote repositories for javadoc.
       List of artifacts without a javadoc archive:
         o junit:junit:3.8.1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Wed Jan 12 16:09:35 KST 2011
[INFO] Final Memory: 8M/19M

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building gwtbuilder-webapp Maven Webapp
[INFO]    task-segment: [eclipse:eclipse]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing eclipse:eclipse
[INFO] No goals needed for project - skipping
[INFO] [eclipse:eclipse {execution: default-cli}]
[INFO] Adding support for WTP version 2.0.
[INFO] Using Eclipse Workspace: D:\**********
[INFO] no substring wtp server match.
[INFO] Using as WTP server : Tomcat v6.0 as *******
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] File D:\**********\gwtbuilder-webapp\.project already exists.
       Additional settings will be preserved, run mvn eclipse:clean if you want old settings to be removed.
[INFO] Wrote Eclipse project for "gwtbuilder-webapp-0.0.1-SNAPSHOT" to D:\**********\gwtbuilder-webapp.
[INFO]
       Sources for some artifacts are not available.
       Please run the same goal with the -DdownloadSources=true parameter in order to check remote repositories for sources.
       List of artifacts without a source archive:
         o junit:junit:3.8.1
       Javadoc for some artifacts is not available.
       Please run the same goal with the -DdownloadJavadocs=true parameter in order to check remote repositories for javadoc.
       List of artifacts without a javadoc archive:
         o junit:junit:3.8.1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Wed Jan 12 16:27:06 KST 2011
[INFO] Final Memory: 8M/19M
[INFO] ------------------------------------------------------------------------



웹 프로젝트와 관련된 설정들이 추가되게 됩니다.




이제 개발 고고씽~

Posted by 자수씨
, |

오늘 메이븐 쪽으로 찾다보니 익숙한 Ant 와 비교하는 표를 발견하였습니다.
(http://maven.apache.org/plugins/maven-antrun-plugin/usage.html)

Ant Expression Maven Expression
Built-in Tasks  
Ant maven-antrun-plugin
AntCall maven-antrun-plugin
Available profiles
BUnzip2 maven-assembly-plugin
BZip2 maven-assembly-plugin
Chmod maven-assembly-plugin
Condition profiles
Copy maven-resources-plugin
Dependset maven-dependency-plugin
Ear maven-ear-plugin
Filter maven-resources-plugin
Note: Filter uses the @...@ token while maven-resources-plugin uses the \$... token
FixCRLF maven-resources-plugin
GenKey maven-jar-plugin
GUnzip maven-assembly-plugin
GZip maven-assembly-plugin
Jar maven-jar-plugin
Javac maven-compiler-plugin
Javadoc/Javadoc2 maven-javadoc-plugin
LoadProperties maven-resources-plugin
Manifest maven-jar-plugin
Property maven-resources-plugin
Replace maven-resources-plugin
Note: Replace can specify its token while maven-resources-plugin uses the \$... token
Tar maven-assembly-plugin
Unjar maven-assembly-plugin
Untar maven-assembly-plugin
Unwar maven-assembly-plugin
Unzip maven-assembly-plugin
War maven-war-plugin
Zip maven-assembly-plugin
Optional Tasks  
Antlr maven-antlr-plugin
Depend maven-dependency-plugin
EJB Tasks maven-ejb-plugin
FTP maven-deploy-plugin
Note: maven-deploy-plugin can only deploy unto the FTP
JavaCC maven-compiler-plugin
JJDoc maven-compiler-plugin
JJTree maven-compiler-plugin
JUnit maven-surefire-plugin
JUnitReport maven-surefire-report-plugin
ServerDeploy maven-deploy-plugin
Setproxy maven-deploy-plugin
Translate maven-resources-plugin
Note: Translate can specify its own tokens and can have a different encoding scheme for reading and writing files. maven-resources-plugin however uses the \$... annotation only and has only one encoding scheme for reading and writing


나중에 도움이 될 것 같아 정리합니다.

Posted by 자수씨
, |

메이븐을 쓰면서도 Ant 를 이용하여 빌드하는 경우도 발생할 수 있습니다.

이 때 좀 애매한 상황이 클래스패스 설정 부분일 것 입니다.

이런 상황에서 원하는 기능을 제공해 주는 것이 있습니다. Maven Ant Tasks (http://maven.apache.org/ant-tasks/index.html)

아래 페이지에서 관련 라이브러리를 받은 후에 ant 에 task 를 추가합니다.
http://maven.apache.org/ant-tasks/download.html 




사용법은 아래와 같습니다.



Ant 클래스패스를 정의한 후에 자바 프로그램을 실행하거나 컴파일을 할 때 패스를 지정하여 사용합니다.

라이브러리를 확인하는 절차 때문에 초기 실행에 시간이 약간 걸리지만 Maven 과 Ant 를 함께 잘 어울려서 쓸수 있는 방법 중 하나인 것 같습니다.

Posted by 자수씨
, |

MANIFEST.MF 파일을 커스터마이징 하기 위해서는 maven-jar-plugin 을 이용합니다.
(http://maven.apache.org/plugins/maven-jar-plugin)

사용법은 아래와 같습니다.




전체적인 MANIFEST 설정은 아래의 구조를 갖습니다. (http://maven.apache.org/shared/maven-archiver/index.html)



addClasspath 설정을 하면 알아서 메이븐 디펜던시를 추가해줍니다. 참편하네요~

Posted by 자수씨
, |

요즘 회사의 기존 프로젝트를 메이븐으로 전환하면서 이런 구조로 프로젝트를 구성하면 좋겠다는 생각이 들어 포스팅을 하게 되었습니다.

erp 의 HR 을 구성하는 2종류가 있다고 가정하고 2개의 메이븐 프로젝트를 생성합니다.

ㅁ vicki-erp-hr-model
>> HR 모듈의 model 프로젝트


ㅁ vicki-erp-hr-service
>> HR 모듈의 service 프로젝트



이러한 경우 HR 을 구성하는 모듈끼리 분리가 되어 있어 모듈에 대한 전체적인 이해가 어려울 수 있습니다.

그래서 대부분의 오픈 소스 프로젝트의 경우 연관있는 모듈의 상위 프로젝트를 pom 프로젝트로 생성하여 자바프로젝트의 classpath를 지정하여 하나의 모듈처럼 처리할 수 있는 구조로 구성되어 있는 것을 많이 볼 수 있었습니다.

vicki-erp-hr 이라는 자바 프로젝트에 메이븐 POM 프로젝트를 적용하여 vicki-erp-hr-model 과 vicki-erp-hr-service 를 하위 모
듈로 구성시키고 클래스 패스를 지정하면 아래와 같은 구조의 프로젝트로 작업이 가능하게 됩니다.




이 구조를 조금더 확장시킨다면 MM 모듈 프로젝트 2개를 하나로 묶고

 + 


=



HR 과 MM 을 묶어서 하나의 프로젝트로 구성한다면 전체적인 프로젝트를 이해할 수 있는 시점에서도 파악할 수 있는 구조가 되는 것 입니다.



구성하는 사람은 클래스패스 잡을 때 쫌 귀찮긴 하더라도 상당한 장점이 많을 것으로 생각됩니다.

Posted by 자수씨
, |

Maven Enforcer Plugin

JAVA/Maven / 2011. 1. 3. 16:21

Maven Enforcer 플러그인은 메이븐 버전, JDK 버전, OS 종류와 같은 환경을 체크해주는 플러그인 입니다.
플러그인 홈페이지: http://maven.apache.org/plugins/maven-enforcer-plugin/



위의 사용예를 보게 되면, 메이븐 버전은 2.0.6, 자바 버전은 1.5, OS 는 unix 를 체크하게 됩니다.
위를 만족시키지 못한다면 빌드 에러가 발생하게 됩니다.

아직까지는 정의를 해줄만한 프로젝트를 구성해 본 적은 없으나 다른 메이븐 프로젝트를 보면 정의되어 있는 곳들이 좀 있어서 알아두면 좋을 것 같아 정리합니다.

Posted by 자수씨
, |

[Maven] Super POM

JAVA/Maven / 2010. 12. 26. 10:58

모든 메이븐 프로젝트의 POM 은 슈퍼 POM 을 확장합니다.
슈퍼 POM은 설치된 메이븐 디렉토리의 lib 에 maven-x.x.x-uber.jar 파일 안에서 찾을 수 있습니다. (3.0.x 버전에서는
maven-model-3.0.x.jar 파일에서 찾을 수 있습니다.)




 
우리가 접할 수 있는 POM 파일에 별도의 디펜던시와 플러그인 리파지토리를 지정하지 않아도 사용할 수 있는 것은 슈퍼 POM 에 설정된 내용을 확장하기 때문에 가능한 것 입니다.

Posted by 자수씨
, |

우선 개발환경을 준비합니다.

1. Eclipse 구동 환경
2. m2eclipse 플러그인

이클립스와 m2eclipse 가 설치되어 있다는 가정하에 시작하겠습니다.

이번 포스팅에서는 Maven 을 통하여 iBATIS 3 개발을 할 수 있도록 기본 준비 작업을 진행할 예정입니다.

1. File > New 에서 Maven Project 를 선택합니다.



2. iBATIS 3 를 체험해보는 용도의 프로젝트이므로, 별도의 archetype 을 선택하지 않습니다.
"Create a simple project (skip archetype selection)" 을 체크하고 다음으로 넘어갑니다.



3. Maven 프로젝트의 필수 속성을 입력합니다.
Group IdArtifact Id 를 본인 프로젝트에 맞게 설정합니다. 그 후, Finish 버튼으로 프로젝트 생성을 진행합니다.



4. 생성된 프로젝트 확인 및 pom.xml 수정
아래와 같은 구조로 Maven 프로젝트가 생성되었습니다.


최초 생성된 pom.xml 은 아래와 같습니다.

iBATIS 3 + SQLite 사용을 위해 pom.xml 을 아래와 같이 dependency 를 추가합니다.



아래와 같이 Maven Dependencies 가 추가되었다면 iBATIS 3 을 시작할 준비가 완료된 것 입니다.



다음 포스팅에서는 SQLite 로 생성된 DB 에 iBATIS 3 를 이용하여 테이블의 생성, SELECT, DELETE 하는 방법에 대해 알아보겠습니다.





Posted by 자수씨
, |

메이븐을 마구잡이로 사용하는 것 보다는 책을 통해서 한번 정리를 하는 것이 좋을 것 같아서 책을 구매하게 되었습니다.

항상 구매하듯이 YES24 에서 구매하였습니다.



짜잔~ 원서입니다.



가격은 $39.99 입니다.



레알 원서입니다.




뭐 원서라도 전체를 이해하는 것이 아니라 그 의미만 마음 속으로 받아들이면 될 것 같네요~

훗~ 메이븐~




Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백