Whiteship's Note


[인텔리J] 메이븐 프로파일 선택하기

Good Tools : 2010. 8. 19. 11:48


뭐 이런 간단한 것을 올리나 하겠지만.. 윤석군이 이클립스에서 프로파일 옵션 줘서 빌드해도 잘 안 바뀐다길래 인텔리J의 우수함을 뽐내 주기 위해 스크린 샷 한장을 올립니다.

윤석군 보아라..

WEB-INF 밑에 classes에 배포된 calendar.properties에 들어있는 내용인데 분명히 production이래자나.. 난 잘 된다고.. 


하지만 안타깝게도 넌 선택권이 없어.. 이클립스를 잘 써... 현업 나가면 어차피 다 이클립스 쓸텐데 인텔리J에 맛들이면 큰일나.. 다른거 못써. ㅋㅋ

이클립스로 어떻게든 빌드 잘 하고 메이븐 플젝 잘 써먹게 되면 그때 넘어오셩.. 그래야 인텔리J 쓰고 놀다가도 후딱 이클립스에서 프로젝트 하지. 안 그럼 난감해ㅋ
top

  1. Favicon of http://ethdemor.wordpress.com BlogIcon mOer 2010.08.21 22:37 PERM. MOD/DEL REPLY

    그거 참 이상하게 안된단 말이죠;;

    Favicon of http://whiteship.me BlogIcon 기선 2010.08.23 09:41 PERM MOD/DEL

    빌드를 잘 해야지.

  2. Favicon of http://starplatina.tistory.com BlogIcon June 2010.08.23 15:13 PERM. MOD/DEL REPLY

    흠 저도 안된단 말이요.
    빌드 되서 있는 web/classes 폴더밑에 보면 틀림없이 파일이 있는데.. 요상하네 @_@

    윤석군이 찾아서 해결을 해죠!!

    Favicon of http://whiteship.me BlogIcon 기선 2010.08.23 16:08 PERM MOD/DEL

    이클립스를 버려..

    Favicon of http://ethdemor.wordpress.com BlogIcon mOer 2010.08.29 23:25 PERM MOD/DEL

    콘솔이 답입니다 (...)

    Favicon of http://whiteship.me BlogIcon 기선 2010.08.30 09:09 PERM MOD/DEL

    맞아 그게 답이야.
    이클립스에서 메이븐 하려면 콘솔도 띄워놓고 써야돼 ㅋㅋ

    http://www.yes24.com/24/goods/4143117?CategoryNumber=001001003016003012

    메이븐 공부하려면 이거 사

    Favicon of http://ethdemor.wordpress.com BlogIcon mOer 2010.08.30 14:03 PERM MOD/DEL

    오늘 주문 했습니다 ㅎㅎ

    Favicon of http://whiteship.me BlogIcon 기선 2010.08.30 21:03 PERM MOD/DEL

    열공햇 난 영어 공부 해야지. 캬캬

  3. Favicon of http://starplatina.tistory.com BlogIcon June 2010.08.30 15:22 PERM. MOD/DEL REPLY

    박재성님 책은 언제나와요??
    윤석군 책 나옴 구경 시켜죠~~

    Favicon of http://whiteship.me BlogIcon 기선 2010.08.30 20:53 PERM MOD/DEL

    모르겠넹;; 흠..

    Favicon of http://ethdemor.wordpress.com BlogIcon mOer 2010.08.30 21:24 PERM MOD/DEL

    토비님이 11월쯤에 나온다고 하시더라구요. 9월 9일 배송이니까 이후 오프모임 있으면 가져갈께요 ㅋㅋㅋ

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2010.08.30 22:03 신고 PERM MOD/DEL

    ㅇㅇ그랭~

Write a comment.


[메이븐 프로파일] 운영시 배포할 설정 파일과 개발시 배포할 설정 파일 샤샥

Build/Maven : 2010. 8. 19. 11:02


운영시에 사용할 설정과 배포할 때 사용할 설정이 다르다. 어떻게 해야할까요? 예전에도 이 고민을 한적이 있었는데 마침 윤석군이랑 봄싹에 구글 캐린더 연동 서비스를 구현했는데 이런 상황이 또 발생했습니다.

개발 할때 사용할 구글 캘린더와 실제 운영시 사용할 구글 캘린더는 달라야 합니다. 혹은 개발 할 때는 캘린더 서비스를 무시할 수도 있어야 하는데 이 경우는 일단 제외하고 우선은 설정을 환경에 따라 구분해야 한다는 것에 초점을 맞췄습니다.

설정 정보가 구체적으로 어떻냐에 따라 방법도 달라질 수 있는데 이전에 봄싹에 적용한 방법은 다음과 같습.. 흠... 아닙니다.. 귀찮군요. 그냥 생략하고 메이븐 프로파일이나 정리하겠습니다. 어쨋든 이전에 사용한 방법은 메이븐을 사용하지 않은 방법이었는데.. 그게 다 장,단점이 있습니다.

이번에 사용할 방법은 메이븐 프로파일을 사용합니다.


일단 폴더를 저런식으로 구분했는데 뭐 저런 구조야 맘대로 정하시면 되겠죠. 중요한건 개발시 사용할 설정파일이 담겨있는 폴더와 운영시 사용할 설정파일이 담겨있는 폴더를 구분했다는 것 정도..

이제 pom.xml에서 <build> 부분에 개발시 사용할 설정이 담겨있는 폴더를 소스 리소스 폴더로 인식하도록 설정해 줍니다.

    <build>
        ...
        <resources>
           ...
            <resource>
                <directory>${project.basedir}/resources/development</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
        ...
</build>

이렇게 말이죠. 대충 엘리먼트 이름만 봐도 아실테니 설명은 패스.

다음은 운영 환경에서는 저 폴더가 아니라 다른 폴더를 리소스 폴더로 등록해줘야 합니다. 따라서 pom.xml에 프로파일을 추가해 주고 그 안에서 재정의할 설정을 넣어주면 됩니다.

    <profiles>
        <profile>
            <id>production</id>
            <build>
                <resources>
                     ...
                    <resource>
                        <directory>${project.basedir}/resources/production</directory>
                        <excludes>
                            <exclude>**/*.java</exclude>
                        </excludes>
                    </resource>
                </resources>
            </build>
        </profile>
    </profiles>

자 요렇게 해주면 더 프로파일을 가지고 빌드 할때는 운영시 사용할 설정 파일이 담겨있는 폴더를 소스 리소스 폴더로 인식해서 그 안에 있는 .java 파일을 제외한 모든 파일을 배포해줍니다.

마지막으로.. 그럼 저 프로파일을 가지고 빌드 하는 방법은?

mvn clean install -Pproduction -X

요런식으로 mvn을 실행할 때 -P프로파일명 을 주시면 됩니다. 저기서 사용한 -X는 디버깅용 출력에 사용하는 옵션이구요. 나머진 아시겠죠.

좋은점
- 빌드 담당자가 아닌 개발자들은 이전과 동일하게 계속 개발하면 된다.
- 저 설정들을 버전관리에 포함시킬 수 있다.
- 운영 서버에서 빌드 스크립트 설정만 한번 바꿔주면 된다. 그 이후로는 간편하다.

불편한점
- 빌드 담당자(SI에 이런 롤이 있는지 몰겠지만)가 메이븐을 쬐끔 알아야 한다.

사실 위에 적은 좋은점 불편한점은 위에서 생략하고 넘어간 이전 방식과 비교를 했을 때 더 분명한데.. 일단은 그 방법을 적기가 다소 귀찮고 본 글의 주제에도 맞지 않으니 그냥 생략합니다. 대충 세가지 방법을 고민해 뒀는데 나중에 정 한가하고 정 심심해지면 정리해봐야겠습니다.
top

  1. bizuma 2010.09.21 21:13 PERM. MOD/DEL REPLY

    좋은글잘봣습니다: ) 저는pom.xml에 운영설정과 개발설정을분리하는편입니다. 그리고 -P 옵션에의해 적용되는값이달라지도록허고잇고요 ㅎ 같은말일수도잇는데 저는 값들을 pom.xml에설정해서쓰고잇습니다 그럼 calendar.properties 파일은하나가되겟조 ㅎ

Write a comment.


[Maven] Exec Maven Plugin 사용하여 자바 프로그램 실행하기

Build/Maven : 2010. 2. 16. 11:07


참조: http://www.vineetmanohar.com/2009/11/02/3-ways-to-run-java-main-from-maven/

이 플러그인을 사용하기 전까지 주로 사용하던 방법은 main() 메서드를 가지고 있는 자바 파일을 만들지 않고 그냥 테스트 클래스를 만드는 겁니다. 그러면 mvn test를 실행할 때 자동으로 실행되죠ㅋㅋ. 하지만 이 방법은 왠지 편법 같아서 main() 메서드를 가지고 있는 클래스를 실행해볼까 해서 찾아봤더니 exec 플러그인이 있더군요.

http://mojo.codehaus.org/exec-maven-plugin/index.html

1. pom.xml에 플러그인 추가하기

<plugins>
...
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.1.1</version>
            </plugin>
...
</plugins>

2. goal

이 플러그인이 제공하는 goal은 세 가지가 있습니다.

exec:exec 외부 프로그램 실행하기
exec:help exec 플러그인 도움말 보기
exec:java 현재 VM에 있는 메인 클래스 실행하기

3. 사용하기

흠.. compile은 별도로 해줘야 하기 때문에 mvn:compile 정도를 한 뒤 mvn:java -Dexec.mainClass="실행할 클래스명"을 할 수도 있지만... 불편하죠;

mvn test만 사용해서 실행하도록 executions를 이용해서 test Phase에 java Goal을 끼워줍니다. 즉 pom.xml에 플러그인 설정을 다음과 같이 해줍니다.

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.1.1</version>
                <executions>
                    <execution>
                        <phase>test</phase>
                        <goals>
                            <goal>java</goal>
                        </goals>
                        <configuration>
                            <mainClass>whiteship.backup.BackupRunner</mainClass>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

그럼 이제 mvn test을 실행하는 .bat 파일 만들어 놓고 윈도우의 '예약작업'으로 주기적으로 실행하도록 해놓으면 백업 배치 끝!! (리눅스라면 cron으로..블라 블라)

ps1: 어떻게보면 이 방법이 자바 애플리케이션을 서버처럼 띄워서 스케줄링하는 것 보다 시스템도 효율적으로 쓰는 것 같고 간편하네요.

ps2: 특히 윈도우의 예약작업은 리눅스의 cron처럼 공부하지 않아도 쓸 수 있으니.. 이럴 땐 윈도우도 좋네요.
top

  1. Favicon of http://blog.lckymn.com BlogIcon Kevin 2010.02.16 12:27 PERM. MOD/DEL REPLY

    요즘은 리눅스 cron도 GUI로 쉽게 설정가능해요. 공부 안해도... :)

    Favicon of http://whiteship.me BlogIcon 기선 2010.02.16 14:00 PERM MOD/DEL

    오우.. 그렇군요!!

Write a comment.


메이븐에서 컴파일이 되지 않을 땐, 인코딩 의심하기

Build/Maven : 2009. 7. 27. 12:59


mvn compile을 했는데.. 다음과 같은 에러가 발생하는 경우가 있습니다.


직관적으로 인코딩 문제인지.. 의심할 수가 없는 에러 메시지지만, javac를 이용해서 직접 컴파일을 하려고 들면 한글이 깨진 상태로 컴파일이 되지 않는 모습을 볼 수 있습니다.

구글신을 통해 같은 문제를 겪은 분의 글을 보고 이 문제 원인을 알 수 있었습니다. 어딜가나.. 이놈의 인코딩 문제는 정말 괴롭습니다.

해결책은 매우 간단합니다. 메이븐 컴파일러 플러그인의 configuration에 encoding 엘리먼트를 추가해주면 해결됩니다.

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>


top

  1. Favicon of https://helols.tistory.com BlogIcon is윤군 2009.07.27 14:22 신고 PERM. MOD/DEL REPLY

    설마 햇는데...ㅋ
    이놈이;;ㅋ 문제엿네요 ;ㅋ 무튼 ㅊㅋ ㅋㅋㅋ

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2009.07.27 17:17 신고 PERM MOD/DEL

    인코딩 문제 지겨워 지겨워~

Write a comment.


메이븐 배포나 설치시 소스 코드 배포하기

Build/Maven : 2009. 5. 19. 11:11


            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

이렇게 플러그인 하나만 추가하면 끝납니다.
참~ 쉽죠~

jar 골에 maven-source-plugin을 실행하도록 설정한 겁니다. 따라서 mvn install 또는 mvn delpoy를 할 때 소스도 같이 올라가게 되고, 이 라이브러리를 참조하는 쪽에서..

            <plugin>
                <artifactId>maven-idea-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                    <dependenciesAsLibraries>true</dependenciesAsLibraries>
                    <useFullNames>false</useFullNames>
                </configuration>
            </plugin>

이런 식으로 설정해 두었다면, 라이브러리르 가져올 때 소스 코드도 같이 가져오게 됩니다. 그럼 이클립스에서 소스 코드 참조도 쉽게 할 수 있겠죠.
top

  1. Favicon of http://blog.lckymn.com BlogIcon Kevin 2009.05.19 13:16 PERM. MOD/DEL REPLY

    전 M2Eclipse에서 Download Artifact Sources 옵션을 켜놓고 씁니다. :)
    물론 배포에는 도움이 안 될것 같네요...^^;;;

    Favicon of http://whiteship.me BlogIcon 기선 2009.05.19 13:58 PERM MOD/DEL

    아 맞다. 그렇게 해도 되지요~

Write a comment.


메이븐 상식: 기본 페이스(phase)

Build/Maven : 2009. 5. 14. 13:36


참조: http://www.sonatype.com/books/maven-book/reference/lifecycle.html#lifecycle-sect-structure

달달달 외워야 할 것.


맨 처음에 clean을 하지않는 군요. target 폴더를 깨끗하게 청소하고 빌드 하려면, mvn clean verify 형태로 입력하면 되겠습니다. 그럼 위에서부터 쫘르륵~~ 실행해주죠.

validate ->
source -> resource -> compile -> classes ->
test-source -> test-resource -> test-compile -> test ->
pre-pacage -> package -> post-package ->
pre-intefration-test -> integration-test -> post-integration-test ->
verify -> install -> deploy

대충 이렇군요.

top

  1. Favicon of http://iolothebard.tistory.com/ BlogIcon iolo 2009.05.14 18:32 PERM. MOD/DEL REPLY

    이 기본 상식이 참 어렵죠. 설명하기도 어렵고 이해하기도 어렵고^^;

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2009.05.14 22:35 신고 PERM MOD/DEL

    넹 저도 저 페이스를 본지가 3년전인거 같은데 이제 이해가 되네요. @_@

Write a comment.


통합 테스트 분리와 메이븐 관련 참조 할 글

Good Tools : 2009. 5. 11. 00:53


http://docs.codehaus.org/display/MAVENUSER/Maven+and+Integration+Testing

http://docs.codehaus.org/display/MAVEN/Creating+a+Maven+Integration+Test

http://wiki.rodcoffin.com/index.php?title=Maven_Integration_Testing

이 중에서 마지막 글이 지금 봄싹 프로젝트 상태에 가장 적합한 내용인 듯...

통합 테스트를 별도의 프로젝트로 분리할 것인가 말 건인가.. 고민이로세~
top

Write a comment.


OSAF 메이븐 저장소 사용하기

Build/Maven : 2008. 10. 14. 15:04


참조 : http://www.sonatype.com/book/reference/repository-manager.html#sect-conf-maven-nexus

기본으로 메이븐 저장소를 사용하게 되는데, 멀리 있어서 느린데다가, 라이브러리 업데이트도 느리기 때문에 최신 라이브러리를 참조할 수가 없습니다. 반면, 최신 라이브러리를 빠르게 참조할 수 있는 OSAF 메이븐 저장소를 간편하게 사용하실 수 있습니다.

일단 .m2 폴더(자기 계정 기본 폴더에 히든 폴더로 생깁니다.)에 settings.xml 파일을 열고(없으면 만들고.)

<settings>
...
 <mirrors>
...
  <mirror>
  <id>Nexus</id>
  <name>Nexus Public Mirror</name>
  <url>http://www.epril.com:8082/nexus/content/groups/public</url>
  <mirrorOf>central</mirrorOf>
  </mirror>
... 
</mirrors>
...
</settings>

이렇게 하나의 미러 사이트를 추가해주시면 됩니다. 기본 메이븐 저장소, 아파치, 코드하우스, 아틀라시안, 스프링, 스프링 DM 등 유명한 메이븐 저장소를 전부 프록시로 등록해뒀기 때문에, 저렇게 설정하시면 기본 설정에서 보다 더 많은 최신 라이브러리를 쉽고 빠르게 참조하여 사용할 수 있으실 겁니다.

간혹, 정말 간혹 다운받지 못하는 라이브러리가 있을 때는, 저한테 요청하시면 (원하는 그룹 iD와 원하는 artifactID, 버전으로..)라이브러리 설치 서비스도 해드립니다.ㅋㅋㅋ  라이브러리 설치야 워낙 간단하기 땜시~
top

  1. Favicon of http://toby.epril.com BlogIcon 토비 2008.10.14 19:23 PERM. MOD/DEL REPLY

    꺅 이프릴 서버 뻗는 거 아냐

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.10.14 22:25 PERM MOD/DEL

    앗.. 그러려나;;ㅋㅋ

  2. Favicon of http://iolothebard.tistory.com/ BlogIcon iolo 2008.10.15 00:39 PERM. MOD/DEL REPLY

    오 빠르네요 ^O^

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.10.15 17:40 PERM MOD/DEL

    네. 애용하세요~

  3. Favicon of http://yunsunghan.tistory.com BlogIcon Max 2008.10.15 11:56 PERM. MOD/DEL REPLY

    좋아쓰~ 회사표준 밀러사이트로 등록!
    하면...안되겠죠? ^^;;;;

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.10.15 17:40 PERM MOD/DEL

    ㅋㅋ개인적인 용도로 만족하시기 바래요. ;)

  4. arawn 2008.11.05 15:32 PERM. MOD/DEL REPLY

    감사한 마음으로... 오늘부터 저도 한다리 걸치겠사옵니다. ^^;;

    안그래도 요즘 너무 느려터진 센트랄로 뒤로 넘어가기 일보직전이었는데 말이죠 ㅎㅎ;;

    Favicon of http://whiteship.me BlogIcon 기선 2008.11.05 16:09 PERM MOD/DEL

    넹 사용하세요. ㅎㅎ
    최근엔 하이버네이트 저장소까지 추가해뒀습니다.

    제가 직접 올려둔 라이브러리도 쫌 있구요. OSAF도 참조하실 수 있죠. 후훗.

  5. Favicon of https://helols.tistory.com BlogIcon is윤군 2009.03.24 13:53 신고 PERM. MOD/DEL REPLY

    저도 한 다리 살짝;;

    감사합니다~

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2009.03.24 16:49 신고 PERM MOD/DEL

    ㅇㅇ~

    Favicon of https://helols.tistory.com BlogIcon is윤군 2009.03.25 19:36 신고 PERM MOD/DEL

    aspectjtools.jar 추가좀 해주세요~
    버전은 1.5.4로~;;
    미리감사요^^ㅋ

    Favicon of http://whiteship.me BlogIcon 기선 2009.03.26 11:55 PERM MOD/DEL

    <dependency>
    <groupId>aspectj</groupId>
    <artifactId>aspectjtools</artifactId>
    <version>1.5.3</version>
    </dependency>

    1.5.4가 아니라 1.5.3을 올렸다네~
    1.5.4 파일 보내주면 그걸로 올려줄께

    Favicon of https://helols.tistory.com BlogIcon is윤군 2009.03.26 13:36 신고 PERM MOD/DEL

    오홋;; 감사해용..ㅋ
    1.5.3 이 원래 쓰이던거였는데 더 잘됐네욥;
    1.5.3으로 변경 해야 겠어요 ~

Write a comment.


메이븐으로 원격 저장소에 라이브러리 배포하기

Build/Maven : 2008. 9. 8. 18:10


팀에서 사용하는 공통의 메이븐 저장소에 jar 파일을 패키징해서 올려야 다른 PC에 있는 사람들도 해당 프로젝트를 다운받아서 다른 패키지의 라이브러리로 이용할 수 있습니다. 그러려면 배포를 해야죠. 배포 방법은 간단합니다.

mvn deploy

depoly는 라이프싸이클의 거의 끝자락인지 완전 끝인지.. 그 쯤에 있습니다. 그래서 컴파일 부터 테스트까지 모든 과정을 통과하고 로컬에도 배포하고 원격에 최종적으로 배폴르 합니다. 물론 그렇게 흘러가다 하나라도 잘 못되면 원격에 배포가 되지 않습니다.

배포할 원격 저장소를 설정해야합니다. 원격 저장소 설정은 pom.xml에서 합니다.

사용자 삽입 이미지

m2eclipse 플러긴을 쓰면 pom 편집기에서 간ㄷ나하게 등록할 수 있습니다. 캬~ m2eclipse가 q4e를 물리친 것 같네요. 하지만 전 왠지.. 그냥 pom.xml을 편집하는게 편하더군요.

 <distributionManagement>
  <repository>
   <id>release</id>
   <url>http://www.opensprout.org:8082/nexus/content/repositories/releases</url>
  </repository>
  <snapshotRepository>
   <id>snapshots</id>
   <url>http://www.opensprout.org:8082/nexus/content/repositories/snapshots</url>
  </snapshotRepository>
 </distributionManagement>


이런식으로 직접 pom.xml에 등록해도 됩니다.

그리고 해당 저장소에 로긴할 수 있는 id를 settings.xml에 설정합니다. 이 파일은 로컬 리파지토리 루트에 있습니다. 보통 로컬 리파지토리 루트는 홈계정/.m2 폴더에 들어있습니다. 히든폴더기 때문에 잘 찾아보시기 바랍니다.

<settings>
  ...
  <servers>
    <server>
      <id>releases</id>
      <username>deployment</username>
      <password>deployment123</password>
    </server> 
    <server>
      <id>snapshots</id>
      <username>deployment</username>
      <password>deployment123</password>
    </server> 
    <server>
      <id>thirdparty</id>
      <username>deployment</username>
      <password>deployment123</password>
    </server>
  </servers>
  ...
</settings>

이런 식으로 등록하면 됩니다. 간단 간단..
top

  1. Favicon of http://iolothebard.tistory.com/ BlogIcon iolo 2008.09.08 20:56 PERM. MOD/DEL REPLY

    archiva나 artifactory같은 저장소하나 셋업해놓고 쓰는게 젤 속편하더라구요~

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.09.08 22:09 PERM MOD/DEL

    네. 그런 원격 저장소에 배포하는 방법을 정리해둔거죠. ㅋㅋ 위에 코드는 nexus 메뉴얼에 있던 거구요.

  2. Favicon of http://iolothebard.tistory.com/ BlogIcon iolo 2008.09.08 20:57 PERM. MOD/DEL REPLY

    쓰고나서 생각해보니... nexus 쓰신다고 하셨던 기억이 나네요~ =3=3=33

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.09.08 22:10 PERM MOD/DEL

    넹. 캬캬 제가 쓰는 리파지터리 구경오세요. http://www.opensprout.org:8082/nexus/

  3. Favicon of http://iolothebard.tistory.com/ BlogIcon iolo 2008.09.09 18:02 PERM. MOD/DEL REPLY

    와~ 넥서스 짱 이쁘네요~~
    기능이야 뭐 그놈이 그놈이겠지만...
    이쁘다면 얘기가 다른데...-.-;

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.09.09 21:56 PERM MOD/DEL

    ㅋㅋUI 뿐만 아니라 기능도 좋아요. 프록시 사용했기 때문에 라이르러리를 빠르게 받을 수 있고 저장소별 인덱스 때문에 라이브러리 찾는 속도가 더 빠르겠죠.

    자세한 내용은 사부님이 간추려뒀습니다.

    http://toby.epril.com/?p=420

Write a comment.


Maven을 사용하세요. 코딩이 편해집니다.

Build/Maven : 2008. 5. 19. 23:14


mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true

eclipse:eclipse는 단순하게 메이븐 프로젝트를 이클립스 프로젝트로 변화해주는 것 뿐만이 아니라 이런 사랑스럽기까지한 일도 해줍니다.

대부분 자바 프로젝트에서 수 많은 라이브러리들을 사용하고 계실 줄로 압니다. 그 중에서 오픈소스도 여럿 되고 그러다 보면 소스 코드도 볼 수 있는데, 이클립스에서 "Alt + 왼쪽 클릭"으로 링크를 타고 들어가듯이 소스를 네비게이션 하는 하루 일과 중에서도 꽤 큰 비중을 차지할 것입니다.

그런데 그렇게 하다보면 좀 답답하시죠? 소스 코드는 안 나타나고 벽에 부딪힌거 마냥 .class 파일이 나타나서 길을 가로막습니다. 그래도 뭐 방법은 있습니다. attach 머시기 메뉴를 사용해서 소스 코드가 있는 위치를 알려주면 됩니다. 귀찮죠.

그래서 위의 명령어가 멋진겁니다. 한 번 사용하시면 해당 프로젝트가 참조하는 라이브러리의 소스 파일과 javaDoc을 다운로드 해옵니다. 멋지죠. 저 명령어 한 번 사용하고 이클립스에서 F5키로 프로젝트 다시 로딩 해주고(이게 꼭 필요한 과정인지는 모르겠습니다. 전 습관처럼 콘솔창에서 프로젝트가지고 장난치면 이클립스에서 매번 F5키를 눌러줍니다.) 소스 네비게이션을 하다보면 감탄하게 될 겁니다.

아예 플러그인 기본값으로 파라미터 설정해서 mvn eclipse:eclipse만 실행해도 소스코드랑 JavaDoc을 받아오게 설정할 수 도 있습니다. 참조 
top

  1. 2009.01.04 17:05 PERM. MOD/DEL REPLY

    비밀댓글입니다

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2009.01.04 20:46 신고 PERM MOD/DEL

    네 가끔 라이선스 때문인지 귀찮아서인지 저장소에 소스 jar가 안올려져 있는 경우가 있어요. 소스가 안 받아지는 경우엔 그냥 뭐 저장소에 없어서죠.ㅋㅋ

  2. 감사^^ 2009.04.14 09:52 PERM. MOD/DEL REPLY

    아 정말 고마운 정보 감사합니다.
    덕분에 문제를 해결했어요.자주 들리겠습니다.좋은정보 다시 한번 감사해요 ^^

  3. Favicon of http://combible.tistory.com BlogIcon 컴바이블 2010.02.08 11:37 PERM. MOD/DEL REPLY

    Maven을 잘 사용하시는 것 같아서 질문좀 드리려구요~
    http://code.google.com/p/ebi-pride/ 여기의 데이터베이스를 설치하는 중에 프로젝트가 메이븐으로 되어있는데, 제가 메이븐을 사용해본적이 없어서..
    필요한 환경은 다 다운로드, 설치했습니다.

    Alternatively, if you host your own repository you can deploy the file there:
    mvn deploy:deploy-file -DgroupId=uk.ac.ebi.pride -DartifactId=pride-core -Dversion=2.5.7 -Dclassifier=javadoc -Dpackaging=javadoc -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

    위와같은 메세지에서 Dfile, Durl, DrepositoryId 에 각각 설정해줘야하는 값이 어떤것인지 좀 조언해주세요~

    Favicon of http://whiteship.me BlogIcon 기선 2010.02.08 12:11 PERM MOD/DEL

    pride 라이브러리를 못가져와서.. 메이븐 리파지토리에 저런식으로 해당 라이브러리를 직접 배포 해놓고 쓰라는 것 같습니다.

    파일은 배포할 파일 경로, url은 배포할 url 경로, repositoryid는 배포할 repsitoryid를 주는거라고 밖에...@_@;; 암튼 이게 중요한게 아니라.

    pom.xml에 repository 설정을 추가해서 pride 라이브러리를 가져오게 하는게 좋겠습니다.

    http://code.google.com/p/ebi-pride/wiki/Building_A_PRIDE_Based_Application

    이 페이지를 보니까 리파지토리 설정이 있는데요. 이것을 pom.xml의 <repositories> 엘리먼트 안에 넣어주셨는지 확인 바랍니다.

    그런 뒤에 mvn eclipse:eclipse를 해서 pride 라이브러리를 가져왔는지 어쩐지를 확인해 보세요. 이클립스에 M2Eclipse 같은 것을 설치하셨다면 pom.xml의 depedency 탭에서 pride-core 라이브러리가 들어와있는지 살펴보시면 되겠습니다.

    인텔리J에서는 플러그인 설치도 필요없고 그냥 릴로딩 한번 해주면 끝인데 말이죠.ㅋ

    Favicon of http://combible.tistory.com BlogIcon 컴바이블 2010.02.08 14:02 PERM MOD/DEL

    답변감사힙니다.
    다운로드 받은 프로젝트 pom.xml 파일에 링크 걸어주신 repository 설정은 이미 되어있는데요...
    위 프로젝트가 core 라는 프로젝트하고 web 프로젝트 두개로 나뉘어져있습니다. web 을 compile 할때 core 에서 만들어진 jar 파일을 잘 가져와야하는 듯 보이는데요, core를 컴파일하면 아래와 같은 에러가 나네요..
    MavenReportException: Error while creating archive:Exit code: 1 - error: error reading /home/testuser/.m2/repository/org/apache/commons/commons-io/1.3.2/commons-io-1.3.2.jar; error in opening zip file

    해당 위치에 jar 파일은 존재하던데, 무엇이 문제일까요;

    Favicon of http://whiteship.me BlogIcon 기선 2010.02.08 14:40 PERM MOD/DEL

    흠.. 저런 에러는 첨 보는거라 몰겠는데요; zip 파일을 왜 열려고 하는지 잘 몰겠어요; 메이븐으로 어떤 과정을 하고 계신건가요? 흠;;

  4. Favicon of http://combible.tistory.com BlogIcon 컴바이블 2010.02.08 14:43 PERM. MOD/DEL REPLY

    core 프로젝트 pom.xml 파일 있는 곳에 가서 mvn compile 을 했습니다. 뭔가 필요한 jar가 생성되지 않을까..하는 기대를 가지고서요 ㅡㅡ;

    Favicon of http://whiteship.me BlogIcon 기선 2010.02.08 16:17 PERM MOD/DEL

    흠.. mvn compile을 해야지만 price DB를 설치할 수 있는건가요?

  5. Favicon of http://combible.tistory.com BlogIcon 컴바이블 2010.02.08 14:47 PERM. MOD/DEL REPLY

    죄송하지만, 혹시 네이트온 사용하시면 친추좀 될까요? ㅡㅡ;
    hongtebari@nate.com 입니다.

    Favicon of http://whiteship.me BlogIcon 기선 2010.02.08 16:18 PERM MOD/DEL

    훔;; 보통은 구글 토크만 접속하는데;; 들어가보죠.

Write a comment.