'52.Apache Project &...'에 해당되는 글 118건

  1. 2014.01.23 [펌] eclipse에서 pom.xml에 대한 Missing artifact 오류 발생시 해결방안
  2. 2014.01.20 [펌] 이클립스에서 메이븐 환경 구성하기
  3. 2014.01.09 [펌][Maven] Repository (Remote, Central, Local)
  4. 2014.01.09 maven central repository
  5. 2014.01.09 m2eclipse error
  6. 2014.01.09 [펌] Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (execution: default-testCompile, phase: test-compile)
  7. 2014.01.08 [펌] eclipse Error - Can not find the tag library descriptor
  8. 2014.01.08 [펌] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project bb: Compilation failure
  9. 2014.01.03 [펌] [Eclipse, Maven, Tomcat] Maven으로 구성한 웹 프로젝트가 Eclipse에서 실행되지 않는 문제
  10. 2014.01.03 [펌] sts에서 maven 오류
  11. 2014.01.03 [펌] ArtifactDescriptorException: Failed to read artifact descriptor for xxx
  12. 2013.12.31 [펌] Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (execution: default-testCompile, phase: test-compile)
  13. 2013.12.31 [펌] Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom 1
  14. 2013.09.09 [펌]maven local repository에 jar 추가
  15. 2011.06.11 톰캣 6.0 에서 웹사이트 여러개 운영하기 (2)
  16. 2010.11.25 how to use maven on your project
  17. 2010.11.25 maven
  18. 2010.11.25 (자카르타_스트럿츠완전해부)Section_1.pdf
  19. 2010.09.24 WebService] Apache Axis2 사용하기
  20. 2010.09.24 AXIS2를 이용한 웹서비스 개발
  21. 2010.02.19 Blob: JDBC deals with Binary Data
  22. 2010.02.19 Demo Display Binary Data From Database
  23. 2010.02.19 Store BLOBs data into database
  24. 2010.02.19 Read BLOBs data from database
  25. 2010.02.19 apache DbUtils:Use Bean (ORM)
  26. 2010.02.19 Get Http client parameters
  27. 2010.02.19 Get Http methods
  28. 2010.02.19 Exception Utilities
  29. 2010.02.19 Clone Object
  30. 2010.02.19 Use Mapped Object after database Connection close
반응형

eclipse에서 maven 최신 버전 (0.12.xx)를 사용할 경우 maven build시 아래와 같은 에러 메세지를 확인 할 수 있습니다.


Missing artifact javax.activation:activation:jar:1.0.2:provided 
Missing artifact javax.mail:mail:jar:1.3.1:provided 
Missing artifact javax.xml:namespace:jar:1.1.0:provided


이 메세지가 발생 할 경우 eclipse의 maven intergration을 uninstall 후 하위 버전(0.10.xx)으로 설치해주면 해결 됩니다.

0.12.xx에서 새로 생긴 HttpClient 관련 인증 문제 때문에 발생하는 문제인데 아직까지 해결을 안해주고 있네요 -_-;;

# Appendix

- 위의 방식으로도 계속 Missing Artifact ... 가 발생한다면 아래를 참고하여 해결하시길 바랍니다.

1. right click on your project > Maven > Update Dependencies

then

2. right click on your project > Maven > Update Project configuration

Assuming you M2Eclipse plugin is installed correctly this should solve the issue. Also, check if there is an option right click project > Maven > 3. Enable dependency Management select that

참고 URL : http://stackoverflow.com/questions/5500534/m2eclipse-says-missing-artifact-but-i-can-build-from-cmdline



출처 : http://blog.daum.net/gildongmoo2/15971083

Posted by 1010
반응형

1. 개요


나는 원래 Maven 을 사용해 본 적이 없다.

기존의 시스템을 운영하고 유지보수하는 일이 주 업무였기때문에 새로운 기술을  접할 기회가 없었다.


하지만 최근 새 시스템을 운영하기 위해 인수인계를 받고 있는데, 이쪽은 Maven 으로 프로젝트를 관리하고 있었다.

이번 기회에 Maven 을 접해보고 장단점을 실제로 느껴보자.

  

메이븐은 이클립스의 플러그인들 중 하나다.

메이븐의 주요 기능은 개발자가 정의한 자바 프로젝트에서 필요로 하는 각종 라이브러리들과 이들의 종속성을 자동으로 관리해주는 것이다.

 

출처 : http://likebnb.tistory.com/128 

 

Maven 으로 신규 프로젝트를 생성하는 방법은 http://likebnb.tistory.com/128 에 잘 설명되어 있다.

 

내가 필요한건 기존에 Maven 으로 관리하던 프로젝트를 이식받는 방법이다.

아래의 과정을 따라가 보자

 

1. Import - Maven - Check out Maven Projects from SCM 선택

2. 다음 화면에서 SCM URL 을 선택할 수 없음

3. Find more SCM connector 라는 메세지를 클릭

4. Marketplace 에서 SCM 으로 Maven 용 connector 검색

5. 관련 플러그인 설치

6. Eclipse restart 후 다시 Import - Check out Maven Projects from SCM 하면 Svn URL 을 입력해줄 수 있다.

7. Svn URL 입력 후 Checking Out

 

 

그런데 Checking Out 이 진행되다가 한순간 사라져버린다..

왜 그럴까? 




 

2. 문제(1) - 네트웍 프락시 설정


지금 내 PC 에서 인터넷에 접근하기 위해서는 사내 proxy 를 무조건 타게 되어 있다.

maven 은 관련 lib update 등을 위해서는 인터넷의 maven repository 에 접근해야하고, 마찬가지로 proxy 설정이 필요하다.

maven 설치 후 C:\Documents and Settings\사용자\.m2 에 settings.xml 이 없다면 아래와 같이 만들어 주자

(이전 글에서 이클립스에 네트웍 설정으로 세팅한 proxy ip 와 동일한 값이다)

 

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
   <proxies>
    <proxy>
       <active>true</active>
       <protocol>http</protocol>
       <host>70.10.15.10</host>
       <port>8080</port>
     </proxy>
 </proxies>
</settings>

 





2. 문제(2) - Library Jars 인식 불가


maven project 를 check out 후 maven 을 실행해보니 에러가 난다.

자세히 보니 porm.xml 도 에러파일 표시가 나타나고,  buildpath 에서 확인해보면 maven repository 에서 일부 libs 들이 missing 상태로 되어 있다.

물론 관련 jars 들은 프로젝트의 /libs 에 별도로 저장되어 있고, check out 받았다.

 

이러때는 어떻게 해야 할까?

수동으로 찾아서 C:\Users\sds\.m2\repository 아래 디렉토리를 만들어주고 하나하나 챙겨줘야 하나?

위 방법처럼 관리할 바엔 maven을 사용하지 않는게 낫겠다.


인터넷으로는 해결 방법을 찾을 수 없어 http://socurites.com 주인장께 직접 가름침 받았다.


원인은 Maven에서 네트웍 오류 등으로 LastUpdated 실패 내역이 남아있으면 네트웍 문제가 해결된 뒤에도 정상 작동하지 않기 때문이었다.

에러로그를 확인하고 관련된 lattUpdated 파일을 찾아서 지워주자.


[에러메세지 예시]

ArtifactDescriptorException: Failed to read artifact descriptor for asm:asm:jar:3.3: ArtifactResolutionException: Failure to transfer asm:asm:pom:3.3 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact asm:asm:pom:3.3 from/to central (http://repo.maven.apache.org/maven2): C:\Users\사용자\.m2\repository\asm\asm\3.3\asm-3.3.pom.ahc761bb4996fb34ed7 (지정된 파일을 찾을 수 없습니다) 


[C:\Users\사용자\.m2\repository\asm\asm\3.3\asm-3.3.pom.lastUpdated 파일 내용 ]

#NOTE: This is an internal implementation file, its format can be changed without prior notice.

#Tue Jul 09 18:43:57 KST 2013

http\://www.datanucleus.org/downloads/maven2/.error=

legacy-file\:../../local.repository/trunk/.lastUpdated=1373362730367

https\://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/.lastUpdated=1373363027302

http\://maven.springframework.org/milestone/.lastUpdated=1373363037968

http\://repo.maven.apache.org/maven2/.error=Could not transfer artifact asm\:asm\:pom\:3.3 from/to central (http\://repo.maven.apache.org/maven2)\: C\:\\Users\\사용자\\.m2\\repository\\asm\\asm\\3.3\\asm-3.3.pom.ahc761bb4996fb34ed7 (\uC9C0\uC815\uB41C \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4)

file\:../../local.repository/trunk/.error=Could not transfer artifact asm\:asm\:pom\:3.3 from/to local.repository (file\:../../local.repository/trunk)\: No connector available to access repository local.repository (file\:../../local.repository/trunk) of type legacy using the available factories AsyncRepositoryConnectorFactory, WagonRepositoryConnectorFactory

http\://www.datanucleus.org/downloads/maven2/.lastUpdated=1373362730738

http\://maven.springframework.org/milestone/.error=

da39a3ee5e6b4b0d3255bfef95601890afd80709@70.10.15.10\:8080>default-http\://repo.maven.apache.org/maven2/.lastUpdated=1373362730361

https\://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/.error=



해당 파일을 삭제해도 porm.xml 의 error 가 사라지지 않는다면 일부 .m2\repository\ 아래 문제가 되는 일부 lib 디렉토리를 지워버리고 새로 업데이트 해보자.

porm.xml 에 걸려있던 error 들이 한번에 해결되는 경우도 있다.



이제 Maven 실행에 문제가 없을 것이다.


추가로 Maven 은 기본적으로 /test 디렉토리를 가지고 있기 때문에 

소스코드 내에 /test 디렉토리가 없으면 역시 에러가 발생한다.

프로젝트 프로퍼티에서 /test (missing) 을 확인하고 remove 해주던지, /test 를 만들어주던지 하자


출처 : http://originalchoi.tistory.com/category/%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD

Posted by 1010
반응형

Remote Repository와 Local Repository 가 있다.

 

의존관계에 있는 artifact 를 취득할 때

HTTP, FTP, SCP 등의 프로토콜로

Remote Repository 에 접근하여

필요한 artifact를 받아

Local Repository 에 저장하여 caching 한다.

 

Local Repository는 maven 실행 유저의

홈디렉토리에 .m2 디렉토리가 생성된다.

(windows의 경우 Documents and Settings 아래 사용자 폴더가 홈 디렉토리다.)

 

의존관계에 있는 artiface 가 필요할 때

우선 Local Repository 에서 검색하고

없는 경우 Remote Repository 에서 받아내려온다.

 

기본 Remote Repository 를 Central Repository 라고 하며

특별한 설정 없이 이용이 가능하다.

http://repo1.maven.org/maven2

 

실제 central repository에서 필요한 것을 찾기는 어려우니

아래 사이트를 사용하면 검색이용이하다.

http://mvnrepository.com

 

repository 에서 필요로하는 artifact를 찾기 위해서는

group id, artifact id, version 정보가 있어야

필요로하는 유일한 artifact를 찾을 수 있다.

 

repository에 등록된 자료가

꼭 maven으로 만들어지지 않더라도

그것을 artifact라고부른다.

 

Posted by 1010
반응형

http://search.maven.org/#browse%7C47

내부망에서 작업할때

jar 파일이 없거나

maven 에러날때 직접 다운

 

The Central Repository Browser

Index of

central/

Name Last Modified Size
HTTPClient/ 01-Nov-2005 717.8 K
abbot/ 12-Feb-2010 1.4 M
acegisecurity/ 23-Dec-2005 4.7 M
activation/ 22-Dec-2005 369 B
activecluster/ 29-Jul-2011 1.5 M
activeio/ 01-Nov-2005 4.6 M
activemq-jaxb/ 01-Nov-2005 0 B
activemq/ 01-Nov-2005 922.5 M
activesoap/ 01-Nov-2005 22.9 M
activespace/ 29-Jul-2011 117.4 K
adarwin/ 01-Nov-2005 51.6 K
aelfred/ 01-Nov-2005 26.7 K
aislib/ 01-Nov-2005 271.5 K
altrmi/ 01-Nov-2005 609.5 K
am/ 12-Feb-2013 104.9 K
andromda/ 01-Nov-2005 104.4 K
annogen/ 01-Nov-2005 2.2 M
ant-contrib/ 09-Aug-2008 3.0 M
ant-doxygen/ 01-Nov-2005 16.4 K
ant/ 01-Nov-2005 25.4 M
ant4eclipse/ 29-Jul-2011 331.6 K
antlr/ 01-Nov-2005 4.9 M
anttex/ 01-Nov-2005 5.0 K
aopalliance/ 28-Oct-2005 26.5 K
apache-jaxme/ 01-Nov-2005 1.1 M
aptconvert/ 01-Nov-2005 442.2 K
ar/ 25-Aug-2012 28.8 M
args4j/ 28-Aug-2012 8.2 M
ashkay/ 01-Nov-2005 20.0 K
ashkelon/ 01-Nov-2005 290.9 K
asia/ 18-Feb-2013 6.6 M
asm/ 07-Jul-2009 9.2 M
aspectj/ 21-Dec-2005 109.6 M
aspectwerkz/ 01-Nov-2005 247.5 M
at/ 07-Jun-2013 21.8 M
au/ 24-Jun-2011 5.9 M
avalon-activation/ 01-Nov-2005 489.9 K
avalon-apps/ 01-Nov-2005 18.6 K
avalon-composition/ 01-Nov-2005 1.4 M
avalon-cornerstone/ 01-Nov-2005 140.1 K
avalon-extension/ 01-Nov-2005 82.1 K
avalon-framework/ 01-Nov-2005 6.1 M
avalon-http/ 19-Jul-2006 27.0 K
avalon-logging/ 01-Nov-2005 175.8 K
avalon-logkit/ 01-Nov-2005 248.5 K
avalon-meta/ 01-Nov-2005 658.9 K
avalon-phoenix/ 01-Nov-2005 284.7 K
avalon-repository/ 01-Nov-2005 650.2 K
avalon-util/ 01-Nov-2005 241.7 K
avalon/ 20-Oct-2006 868.7 K
axion/ 01-Nov-2005 1.2 M
axis/ 20-Oct-2006 26.9 M
axis2/ 05-May-2006 12.8 M
azote/ 01-Nov-2005 47.4 K
backport-util-concurrent/ 20-Feb-2008 5.1 M
backport175/ 01-Nov-2005 4.6 M
barsuift/ 27-May-2010 8.7 M
batik/ 01-Nov-2005 11.2 M
bcel/ 28-Oct-2005 1.7 M
be/ 19-Aug-2013 29.7 M
beehive/ 01-Nov-2005 5.1 M
berkano/ 01-Nov-2005 27.7 M
berkeleydb/ 01-Nov-2005 6.8 M
binky/ 25-Feb-2010 801.2 K
biz/ 11-Apr-2013 55.3 M
blissed/ 01-Nov-2005 1.0 M
boo/ 06-Nov-2006 219.9 M
bouncycastle/ 03-Sep-2009 45.3 M
boxstuff/ 01-Nov-2005 29.1 K
bsf/ 01-Nov-2005 534.0 K
bsh/ 01-Nov-2005 1.2 M
burlap/ 01-Nov-2005 79.6 K
by/ 01-Nov-2012 122.3 M
c10n/ 05-Mar-2013 315.5 K
c3p0/ 01-Nov-2005 5.9 M
ca/ 14-Aug-2013 2.8 G
cactus/ 12-Apr-2008 41.7 M
cargo/ 01-Nov-2005 2.7 M
cas/ 23-Jun-2006 255.3 K
castor/ 06-Dec-2007 202.0 M
cc/ 02-Jul-2013 171.8 M
cewolf/ 01-Nov-2005 515.9 K
cglib/ 11-May-2011 19.0 M
ch/ 09-Aug-2013 456.5 M
charlotte/ 01-Nov-2005 130.6 K
checkstyle/ 28-Oct-2005 12.1 M
classworlds/ 20-May-2010 5.3 M
clickstream/ 24-Nov-2005 9.7 K
clirr/ 01-Nov-2005 36.0 K
clover/ 01-Nov-2005 17.1 M
cmsdeploy/ 07-Dec-2005 749 B
cn/ 19-Sep-2013 2.1 M
co/ 08-Aug-2013 18.5 M
cobertura/ 07-Feb-2006 526.7 K
coconut/ 01-Nov-2005 1.8 M
cocoon/ 10-Jun-2008 203.4 M
code/ 20-May-2010 1.5 M
code316/ 01-Nov-2005 49.9 K
codehaus/ 17-Jul-2008 0 B
colt/ 01-Nov-2005 1.6 M
com/ 20-Sep-2013 142.2 G
commons-attributes/ 04-Jul-2006 348.0 K
commons-beanutils/ 25-Mar-2010 14.1 M
commons-betwixt/ 01-Nov-2005 3.5 M
commons-chain/ 09-Mar-2013 1.2 M
commons-cli/ 09-Mar-2013 786.4 K
commons-codec/ 09-Mar-2013 10.3 M
commons-collections/ 09-Mar-2013 15.9 M
commons-compress/ 01-Nov-2005 124.7 K
commons-configuration/ 09-Mar-2013 26.6 M
commons-daemon/ 09-Mar-2013 11.2 M
commons-dbcp/ 09-Mar-2013 4.1 M
commons-dbutils/ 09-Mar-2013 5.1 M
commons-digester/ 09-Mar-2013 14.4 M
commons-discovery/ 09-Mar-2013 1.4 M
commons-el/ 28-Oct-2005 495.0 K
commons-email/ 09-Mar-2013 939.2 K
commons-fileupload/ 09-Mar-2013 4.3 M
commons-grafolia/ 01-Nov-2005 0 B
commons-grant/ 01-Nov-2005 71.4 K
commons-graph/ 01-Nov-2005 148.5 K
commons-http/ 01-Nov-2005 5.8 K
commons-httpclient/ 20-May-2010 21.6 M
commons-i18n/ 01-Nov-2005 7.2 M
commons-io/ 09-Mar-2013 17.0 M
commons-jdbc2pool/ 01-Nov-2005 467 B
commons-jelly/ 20-May-2010 42.7 M
commons-jexl/ 01-Nov-2005 10.3 M
commons-jux/ 01-Nov-2005 6.4 K
commons-jxpath/ 09-Mar-2013 4.3 M
commons-lang/ 09-Mar-2013 12.3 M
commons-latka/ 01-Nov-2005 152.2 K
commons-launcher/ 04-Jul-2006 247.9 K
commons-logging/ 14-Mar-2013 6.6 M
commons-math/ 09-Mar-2013 6.5 M
commons-messenger/ 01-Nov-2005 1.1 M
commons-modeler/ 01-Nov-2005 1.0 M
commons-naming/ 01-Nov-2005 128.3 K
commons-net/ 09-Mar-2013 27.0 M
commons-pool/ 09-Mar-2013 6.7 M
commons-primitives/ 01-Nov-2005 1.5 M
commons-resources/ 01-Nov-2005 49.5 K
commons-scxml/ 09-Mar-2013 2.7 M
commons-services/ 28-Oct-2005 461 B
commons-sql/ 01-Nov-2005 311.1 K
commons-test/ 08-Nov-2005 16.1 K
commons-threadpool/ 01-Nov-2005 7.2 K
commons-transaction/ 01-Nov-2005 925.7 K
commons-util/ 01-Nov-2005 26.7 K
commons-validator/ 28-Oct-2005 6.6 M
commons-vfs/ 01-Nov-2005 1.1 M
commons-xo/ 01-Nov-2005 31.8 K
concurrent/ 28-Oct-2005 1.7 M
continuum/ 01-Nov-2005 2.4 K
controlhaus/ 01-Nov-2005 186.7 M
cornerstone-connection/ 01-Nov-2005 54.6 K
cornerstone-datasources/ 01-Nov-2005 31.8 K
cornerstone-scheduler/ 01-Nov-2005 61.4 K
cornerstone-sockets/ 01-Nov-2005 50.8 K
cornerstone-store/ 01-Nov-2005 97.0 K
cornerstone-threads/ 01-Nov-2005 52.1 K
cos/ 07-Dec-2005 1.6 K
crimson/ 01-Nov-2005 201.2 K
cryptix/ 01-Nov-2005 473.9 K
cssparser/ 20-May-2010 112.7 K
cz/ 09-Aug-2013 22.3 M
d-haven-event/ 01-Nov-2005 134.9 K
d-haven-eventbus/ 01-Nov-2005 15.3 K
d-haven-mpool/ 01-Nov-2005 23.4 K
dalma/ 19-Aug-2011 1.4 M
dalms/ 19-Aug-2011 9.9 K
damagecontrol/ 01-Nov-2005 156.2 M
dataforge/ 01-Nov-2005 0 B
datasift/ 01-Nov-2005 181.9 K
dbunit/ 01-Nov-2005 1.2 M
de/ 20-Sep-2013 5.0 G
decorutils/ 01-Nov-2005 53.4 K
dentaku/ 01-Nov-2005 70.1 M
directory-asn1/ 01-Nov-2005 668.3 K
directory-authx/ 01-Nov-2005 0 B
directory-clients/ 01-Nov-2005 67.9 K
directory-naming/ 01-Nov-2005 140.1 K
directory-network/ 01-Nov-2005 2.2 M
directory-protocols/ 01-Nov-2005 152.0 K
directory-shared/ 01-Nov-2005 2.4 M
directory/ 25-Dec-2005 40.8 M
displaytag/ 12-Aug-2008 14.3 M
ditchnet/ 24-Nov-2005 28.3 K
dk/ 17-May-2013 76.1 M
dna/ 01-Nov-2005 15.6 M
dnsjava/ 03-Nov-2010 17.2 M
docbook/ 17-Jun-2006 14.0 M
doccheck/ 01-Nov-2005 27.8 K
dom4j/ 01-Nov-2005 8.7 M
domify/ 04-Oct-2010 37.8 K
doxia/ 28-Oct-2005 2.2 M
drone/ 01-Nov-2005 67.0 M
drools-examples/ 01-Nov-2005 14.3 K
drools/ 01-Feb-2007 468.0 M
dsh-vocabulary/ 01-Nov-2005 42.1 K
dtdparser/ 01-Nov-2005 45.7 K
dumbster/ 01-Nov-2005 46.9 K
dwr/ 24-Nov-2005 1.7 M
dynaop/ 01-Nov-2005 86.0 K
easyconf/ 01-Nov-2005 190.2 K
easymock/ 28-Oct-2005 655.8 K
echo/ 01-Nov-2005 330.5 K
echo3/ 20-May-2010 376 B
echo3extras/ 20-May-2010 388 B
eclipse/ 01-Nov-2005 15.7 M
ecs/ 01-Nov-2005 751.4 K
edenlib/ 01-Nov-2005 144.2 K
edtftp/ 01-Nov-2005 35.7 K
edu/ 29-Aug-2013 6.2 G
ehcache/ 28-Oct-2005 403.2 K
ejb/ 07-Dec-2005 0 B
el-impl/ 19-Aug-2011 163.5 K
emberio/ 01-Nov-2005 184.6 K
emma/ 18-Oct-2010 11.0 M
ervacon/ 01-Nov-2005 106.3 K
es/ 19-Feb-2013 221.0 M
esper/ 29-Jan-2008 465.2 M
eu/ 29-Aug-2013 471.3 M
excalibur-altrmi/ 01-Nov-2005 422.8 K
excalibur-cli/ 01-Nov-2005 24.5 K
excalibur-collections/ 01-Nov-2005 65.3 K
excalibur-component-examples/ 01-Nov-2005 14.7 K
excalibur-component-tests/ 01-Nov-2005 15.8 K
excalibur-component/ 01-Nov-2005 455.1 K
excalibur-concurrent/ 01-Nov-2005 30.4 K
excalibur-configuration/ 01-Nov-2005 1.5 M
excalibur-containerkit/ 01-Nov-2005 87.8 K
excalibur-datasource/ 01-Nov-2005 292.7 K
excalibur-event/ 01-Nov-2005 1.6 M
excalibur-extension/ 01-Nov-2005 27.3 K
excalibur-fortress/ 01-Nov-2005 1.1 M
excalibur-i18n/ 01-Nov-2005 528.3 K
excalibur-instrument-manager-interfaces/ 01-Nov-2005 46.8 K
excalibur-instrument-manager/ 01-Nov-2005 345.2 K
excalibur-instrument/ 01-Nov-2005 441.0 K
excalibur-io/ 01-Nov-2005 40.9 K
excalibur-lifecycle/ 01-Nov-2005 72.7 K
excalibur-logger/ 01-Nov-2005 384.1 K
excalibur-monitor/ 01-Nov-2005 99.2 K
excalibur-mpool/ 01-Nov-2005 17.6 K
excalibur-naming/ 01-Nov-2005 65.5 K
excalibur-pool/ 01-Nov-2005 290.3 K
excalibur-sourceresolve/ 01-Nov-2005 392.5 K
excalibur-store/ 01-Nov-2005 115.0 K
excalibur-thread/ 01-Nov-2005 433.6 K
excalibur-util/ 01-Nov-2005 95.6 K
excalibur-xmlutil/ 01-Nov-2005 252.0 K
excalibur/ 01-Nov-2005 1.5 M
exist/ 01-Nov-2005 979.3 K
exml/ 01-Nov-2005 119.6 K
exo/ 01-Nov-2005 16.0 M
exolabcore/ 01-Nov-2005 594.8 K
exteca/ 01-Nov-2005 436.0 K
fastutil/ 01-Nov-2005 97.4 M
fesi/ 01-Nov-2005 1.2 M
fi/ 29-Aug-2013 65.2 M
findbugs/ 06-Nov-2006 16.3 M
flox/ 01-Nov-2005 54.2 K
flux/ 13-Dec-2010 420.9 K
fm/ 16-May-2012 26.4 M
fop/ 01-Nov-2005 11.4 M
forehead/ 01-Nov-2005 64.6 K
formproc/ 01-Nov-2005 89.0 K
foxtrot/ 06-Nov-2011 553.4 K
fr/ 16-Sep-2013 398.9 M
freebxml/ 01-Nov-2005 619.0 K
freemarker/ 01-Nov-2005 5.9 M
fulcrum/ 01-Nov-2005 1.4 M
gabriel/ 01-Nov-2005 2.4 M
gbean/ 01-Nov-2005 0 B
generama/ 18-Jul-2008 1.9 M
genjar/ 01-Nov-2005 31.8 K
genjava/ 01-Nov-2005 4.0 M
geronimo-spec/ 01-Nov-2005 5.5 M
geronimo/ 09-Jan-2007 208.9 M
gg/ 08-May-2012 109.8 K
glassfish/ 19-Aug-2011 3.3 K
gnu-regexp/ 01-Nov-2005 30.7 K
gnu/ 20-May-2010 117.3 K
gov/ 15-Aug-2012 159.8 M
gr/ 08-Jan-2013 11.8 M
graphlayout/ 01-Nov-2005 107.8 K
grizzly-cachetest/ 13-Feb-2009 4.5 M
grizzly/ 19-Aug-2011 31.1 M
groovy-xmlrpc/ 27-May-2006 0 B
groovy/ 01-May-2007 359.6 M
gs/ 08-Sep-2012 2.1 M
gsbase/ 01-Nov-2005 283.7 K
hessian/ 01-Nov-2005 513.4 K
hibernate/ 26-Dec-2008 43.8 M
hivemind/ 01-Nov-2005 5.8 M
howl/ 01-Nov-2005 262.6 K
hsqldb/ 28-Oct-2005 8.1 M
htmlunit/ 01-Nov-2005 7.5 M
httpcomponents-httpcore/ 03-Jul-2007 1.2 M
httpunit/ 19-May-2010 5.6 M
hu/ 24-Apr-2013 7.4 M
hudson/ 15-Dec-2010 78.2 M
ical4j/ 01-Nov-2005 2.7 M
icu/ 03-Nov-2005 564 B
icu4j/ 04-Nov-2005 571 B
idb/ 01-Nov-2005 231.6 K
ie/ 20-May-2010 98.4 K
iirekm/ 19-May-2010 5.1 K
il/ 20-Mar-2012 99.7 K
in/ 20-Sep-2013 4.9 M
info/ 10-May-2013 588.7 M
informa/ 01-Nov-2005 182.0 K
innig/ 01-Nov-2005 322.5 K
io/ 29-Aug-2013 5.3 G
isorelax/ 01-Nov-2005 385.4 K
it/ 21-Jul-2013 7.2 G
itext/ 01-Nov-2005 8.7 M
ivory/ 01-Nov-2005 3.3 M
izpack/ 01-Nov-2005 6.1 M
jaas/ 01-Nov-2005 892 B
jackcess/ 01-Nov-2005 565.7 K
jackson/ 06-Sep-2008 4.2 M
jacl/ 01-Nov-2005 718.2 K
jaf/ 28-Oct-2005 994 B
jaimbot/ 01-Nov-2005 88.0 K
jakarta-regexp/ 01-Nov-2005 29.0 K
jalopy/ 01-Nov-2005 7.0 M
james/ 01-Nov-2005 1.1 M
janino/ 01-Nov-2005 9.2 M
jardiff/ 14-Feb-2006 773.1 K
jarjar/ 01-Nov-2005 225.3 K
jarsync/ 01-Nov-2005 58.5 K
jasper-jsr199/ 19-Aug-2011 7.1 K
jasperreports/ 01-Nov-2005 92.4 M
java2html/ 01-Nov-2005 601.0 K
java3d/ 01-Nov-2005 4.0 M
javacc/ 01-Nov-2005 860.9 K
javaconfig/ 01-Nov-2005 47.4 K
javadb/ 20-Mar-2013 116.9 M
javadoc/ 01-Nov-2005 1.3 K
javaee/ 19-Aug-2011 697.5 K
javagroups/ 01-Nov-2005 2.8 M
javainetlocator/ 01-Nov-2005 260.1 K
javamail/ 01-Nov-2005 3.4 K
javancss/ 01-Nov-2005 3.5 M
javanettasks/ 19-Aug-2011 122.4 M
javassist / 05-Apr-2008 0 B
javassist/ 17-Apr-2010 14.1 M
javatar/ 01-Nov-2005 25.8 K
javax/ 30-Mar-2012 518.5 M
javazoom/ 09-Nov-2012 572.3 K
javolution/ 16-Aug-2011 9.5 M
jawin/ 24-Nov-2005 198.6 K
jaxb/ 19-Aug-2011 102.6 K
jaxen/ 13-Dec-2013 54.1 M
jaxme/ 06-Nov-2006 16.2 M
jaxr-ra/ 20-May-2010 29.5 K
jblanket/ 01-Nov-2005 127.5 K
jboss/ 23-Apr-2013 49.3 M
jca/ 01-Nov-2005 1.8 K
jcache/ 01-Nov-2005 109.2 K
jcharts/ 16-Mar-2012 953.2 K
jcifs/ 23-Mar-2012 3.1 M
jcom/ 24-Nov-2005 56.0 K
jcommon/ 28-Oct-2005 2.1 M
jcoverage/ 01-Nov-2005 201.4 K
jcs-javagroups/ 01-Nov-2005 8.4 K
jcs/ 01-Nov-2005 722.0 K
jcvsii/ 01-Nov-2005 561.6 K
jdbc/ 28-Oct-2005 23.1 K
jdbm/ 01-Nov-2005 328.2 K
jdepend/ 01-Nov-2005 317.5 K
jdiff/ 01-Nov-2005 254.2 K
jdo/ 01-Nov-2005 136.1 K
jdom/ 28-Oct-2005 1.3 M
jdring/ 01-Nov-2005 7.6 K
jdsl/ 01-Nov-2005 132.7 K
jen/ 19-Aug-2011 898.9 K
jencks/ 01-Nov-2005 7.7 M
jep/ 01-Nov-2005 56.5 K
jepi/ 19-Aug-2011 26.1 K
jersey/ 19-Aug-2011 7.3 M
jetty/ 21-Dec-2012 84.8 M
jexcelapi/ 06-Nov-2006 1.7 M
jface/ 01-Nov-2005 60.9 K
jfree/ 26-Sep-2011 64.1 M
jfreechart/ 01-Nov-2005 6.0 M
jgen/ 01-Nov-2005 389 B
jgoodies/ 01-Nov-2005 1.3 M
jgraph/ 01-Nov-2005 4.7 M
jgrapht/ 01-Nov-2005 168.7 K
jgroups/ 19-Apr-2010 187.7 M
jhunlang/ 01-Nov-2005 885.8 K
jini/ 10-Dec-2005 1.2 M
jintention/ 19-May-2010 46.2 K
jisp/ 01-Nov-2005 91.3 K
jivesoftware/ 01-Nov-2005 2.8 M
jlibdiff/ 01-Nov-2005 47.0 K
jline/ 21-May-2011 4.9 M
jmagick/ 28-Feb-2013 378.9 K
jmaki/ 19-Aug-2011 34.9 M
jmdns/ 01-Nov-2005 228.1 K
jmimemagic/ 01-Nov-2005 200.1 K
jmml/ 01-Nov-2005 32.5 K
jmock/ 28-Oct-2005 6.2 M
jms/ 28-Oct-2005 1.9 K
jmscts/ 01-Nov-2005 1.4 M
jmsn/ 01-Nov-2005 87.3 K
joda-time/ 17-Aug-2013 31.0 M
john-test/ 29-May-2008 8.6 M
jotm/ 01-Nov-2005 504.8 K
jp/ 26-Dec-2012 48.0 M
jparsec/ 15-Oct-2012 3.5 M
jpl/ 09-Nov-2012 556.6 K
jpox-dbcp/ 14-Mar-2007 14.1 K
jpox-enhancer/ 14-Mar-2007 170.6 K
jpox-java5/ 14-Mar-2007 67.3 K
jpox/ 21-Jan-2008 77.3 M
jrexx/ 01-Nov-2005 99.5 K
jrms/ 01-Nov-2005 618.6 K
jrobin/ 01-Nov-2005 174.2 K
jruby/ 22-Aug-2007 99.2 M
jsch/ 28-Oct-2005 1.5 M
jsf-extensions/ 19-Aug-2011 26.1 K
jspapi/ 28-Oct-2005 102.6 K
jsptags/ 01-Nov-2005 48.4 K
jstl/ 19-Aug-2011 651.8 K
jstyle/ 01-Nov-2005 18.6 K
jta/ 28-Oct-2005 1.0 K
jtds/ 20-Jan-2006 1.0 K
jtidy/ 28-Oct-2005 330.8 K
juddi/ 01-Nov-2005 0 B
jug/ 01-Nov-2005 70.5 K
jung/ 01-Nov-2005 11.6 M
junit-addons/ 28-Oct-2005 54.7 K
junit-doclet/ 01-Nov-2005 77.5 K
junit/ 05-Oct-2010 13.6 M
junitperf/ 01-Nov-2005 28.9 K
juno/ 19-Aug-2011 31.5 K
jwebunit/ 01-Nov-2005 91.0 K
jxta/ 01-Nov-2005 1.5 M
jython/ 01-Nov-2005 4.4 M
kawa/ 01-Nov-2005 1.3 M
kg/ 20-Feb-2013 3.6 M
kohsuke/ 19-Aug-2011 18.3 K
kxml/ 01-Nov-2005 11.1 K
kxml2/ 01-Nov-2005 32.5 K
ldapd-common/ 01-Nov-2005 1.3 M
ldapsdk/ 01-Nov-2005 257.8 K
li/ 30-Aug-2013 1.1 M
lingo/ 01-Nov-2005 7.3 M
locc/ 01-Nov-2005 309.8 K
log4j/ 20-Apr-2010 28.5 M
log4unit/ 01-Nov-2005 63.6 K
logkit/ 02-Nov-2005 3.1 M
loom/ 01-Nov-2005 42.3 M
lt/ 15-Jan-2013 640.3 K
lucene/ 01-Nov-2005 1.8 M
ma/ 15-Jan-2012 75.1 M
magicGball/ 01-Nov-2005 12.4 K
maps/ 20-May-2010 200.8 K
marmalade/ 22-Jul-2006 1.4 M
maven-integration-test-helper/ 09-Jun-2011 0 B
maven-javanet-plugin/ 19-Aug-2011 1.1 M
maven-new/ 01-Nov-2005 19.2 K
maven-plugins/ 06-Nov-2006 52.3 M
maven-proxy/ 01-Nov-2005 4.7 M
maven-taglib/ 01-Nov-2005 834.6 K
maven-torque-plugin/ 01-Nov-2005 483 B
maven-validator/ 01-Nov-2005 817.1 K
maven-xdoclet2-plugin/ 01-Nov-2005 0 B
maven/ 06-Nov-2006 84.4 M
maxq/ 01-Nov-2005 35.6 K
mckoi/ 01-Nov-2005 1.7 M
me/ 05-Sep-2013 306.4 M
merlin-developer/ 01-Nov-2005 79.5 K
merlin-tutorial/ 01-Nov-2005 12.7 K
merlin/ 01-Nov-2005 281.6 K
messenger/ 01-Nov-2005 83.8 K
metaclass/ 01-Nov-2005 7.7 M
mevenide/ 01-Nov-2005 39.2 M
microcontainer/ 01-Nov-2005 0 B
middlegen/ 01-Nov-2005 551.3 K
milyn/ 17-May-2007 26.5 M
mm-mysql/ 01-Nov-2005 236.0 K
mm/ 01-Nov-2005 236.1 K
mockcreator/ 01-Nov-2005 104.6 K
mockit/ 20-May-2010 9.8 M
mockmaker/ 01-Nov-2005 20.9 K
mockobjects/ 01-Nov-2005 1.3 M
mockrunner/ 24-Nov-2005 404.4 K
modello/ 01-Nov-2005 2.4 K
mrj/ 01-Nov-2005 18.9 K
mstor/ 01-Nov-2005 232.2 K
msv/ 01-Nov-2005 6.5 M
mule/ 10-Apr-2007 658.7 M
muse/ 01-Nov-2005 1.0 M
mx/ 04-Jun-2013 16.6 M
mx4j/ 01-Nov-2005 7.8 M
myfaces/ 21-Nov-2005 12.0 M
mysql/ 06-Oct-2007 198.8 M
name/ 10-Sep-2013 10.2 M
nanning/ 01-Nov-2005 331.4 K
nanocontainer/ 14-Jun-2006 57.0 M
nekohtml/ 02-Jun-2008 2.4 M
neo/ 01-Nov-2005 20.6 M
net/ 16-Sep-2013 35.1 G
netbeans/ 01-Nov-2005 1.5 M
new/ 20-May-2010 92.1 K
nf/ 04-Jan-2012 227.7 K
nl/ 26-Jul-2013 1.7 G
no/ 01-May-2013 257.1 M
norbert/ 01-Nov-2005 477.4 K
nsuml/ 01-Nov-2005 3.0 M
nu/ 08-Jun-2012 22.7 M
nz/ 22-May-2012 316.3 M
oauth/ 28-Jan-2010 2.1 M
odmg/ 28-Oct-2005 14.2 K
ognl/ 15-Dec-2010 15.1 M
ojb/ 01-Nov-2005 15.5 M
ojdbc/ 28-Oct-2005 725 B
old/ 01-Nov-2005 2.2 M
oness/ 01-Nov-2005 386.8 K
open-esb/ 19-Aug-2011 29.5 K
open/ 20-May-2010 111.3 K
openejb/ 07-May-2006 392.6 M
openim/ 01-Nov-2005 1.3 M
openjms/ 01-Nov-2005 3.9 M
opennms/ 01-Nov-2005 557.1 K
opensymphony/ 19-Feb-2009 86.9 M
oracle/ 19-Aug-2011 12.1 K
org/ 08-Mar-2013 731.5 G
oro/ 28-Oct-2005 617.1 K
oscube/ 01-Nov-2005 1.1 M
p2psockets/ 01-Nov-2005 29.5 K
p6spy/ 13-Nov-2013 2.3 M
patterntesting/ 01-Nov-2005 10.5 K
payload/ 01-Nov-2005 407.3 K
pcj/ 01-Nov-2005 2.6 M
pdfbox/ 01-Nov-2005 7.6 M
penguin/ 01-Nov-2005 32.6 K
petridish/ 01-Nov-2005 801 B
ph/ 21-Jun-2012 3.4 M
piccolo/ 01-Nov-2005 115.1 K
picocontainer/ 14-Jun-2006 35.0 M
picounit/ 01-Nov-2005 2.9 M
pircbot/ 08-Apr-2011 3.4 M
pl/ 16-Sep-2013 234.1 M
plexus/ 05-Jan-2007 12.2 M
plj/ 01-Nov-2005 1.1 M
plugin/ 01-Nov-2005 0 B
pluto-container/ 01-Nov-2005 113.2 K
pmd/ 12-Nov-2011 73.2 M
pnuts/ 11-Oct-2010 608.0 K
poi/ 29-Oct-2005 20.0 M
poolman/ 01-Nov-2005 89.0 K
portlet-api/ 01-Nov-2005 17.9 K
postgresql/ 05-Oct-2010 17.7 M
prevayler/ 01-Nov-2005 4.2 M
pro/ 15-Feb-2013 7.0 M
proctor/ 19-Aug-2011 2.7 M
profiler/ 01-Nov-2005 9.8 K
proxool/ 28-Oct-2005 466.0 K
proxytoys/ 01-Nov-2005 2.3 M
pt/ 08-Jul-2013 456.6 K
pubscribe/ 01-Nov-2005 1.1 M
pull-parser/ 28-Oct-2005 157.3 K
qdox/ 28-Oct-2005 3.4 M
qfork/ 01-Nov-2005 0 B
quartz-jboss/ 25-Feb-2010 1.6 K
quartz-oracle/ 25-Feb-2010 1.1 K
quartz-weblogic/ 25-Feb-2010 1.3 K
quartz/ 01-Nov-2005 4.1 M
quilt/ 01-Nov-2005 259.3 K
radeox/ 01-Nov-2005 677.3 K
readline/ 01-Nov-2005 453 B
redhill/ 01-Nov-2005 288.1 K
redis/ 06-Oct-2010 6.4 M
redmine/ 20-May-2010 821.1 K
regexp/ 20-Oct-2006 109.8 K
relaxngDatatype/ 01-Nov-2005 31.6 K
reportrunner/ 01-Nov-2005 315.1 K
rhino/ 01-Nov-2005 12.7 M
ro/ 29-Aug-2013 255.4 M
robo-guice/ 20-May-2010 536 B
roboguice/ 20-May-2010 167.5 K
roller/ 20-May-2010 89.5 K
rome/ 19-Aug-2011 8.8 M
rs/ 01-Dec-2012 193.6 K
rss4j/ 01-Nov-2005 46.0 K
rsslibj/ 01-Nov-2005 20.3 K
ru/ 05-Sep-2013 142.9 M
sablecc/ 01-Nov-2005 1.7 M
sax/ 01-Nov-2005 28.3 K
saxon/ 20-Oct-2006 1.9 M
saxpath/ 28-Oct-2005 160.7 K
scout/ 29-Oct-2005 76.5 K
scraping-engine/ 01-Nov-2005 3.0 M
se/ 05-Sep-2013 2.5 G
securityfilter/ 01-Nov-2005 96.9 K
servicemix-ws/ 01-Nov-2005 0 B
servicemix/ 25-Mar-2006 342.3 M
servletapi/ 29-Oct-2005 696.3 K
servlets/ 01-Nov-2005 118.7 K
setpoint/ 06-Nov-2006 193.8 K
sfx4j/ 19-Aug-2011 517.5 K
shellix/ 20-May-2010 789 B
shocks/ 01-Nov-2005 9.1 M
sillyexceptions/ 01-Nov-2005 5.6 K
simple-jms/ 09-Dec-2005 373.5 K
simple-jndi/ 01-Nov-2005 3.1 M
sk/ 27-Feb-2013 453.4 M
skaringa/ 01-Nov-2005 89.2 K
skinlf/ 01-Nov-2005 383.4 K
slide/ 01-Nov-2005 5.9 M
smartrics/ 05-Oct-2012 6.4 M
soap/ 01-Nov-2005 848.4 K
soimp/ 19-Aug-2011 15.7 K
solarisrealm/ 20-May-2010 85.1 K
speexx/ 01-Nov-2005 501.6 K
spice/ 01-Nov-2005 8.9 M
spring/ 01-Nov-2005 2.0 M
springframework/ 01-Nov-2005 85.1 M
springmodules/ 20-Jun-2006 346.4 K
sshtools/ 20-May-2010 1.5 M
sslext/ 01-Nov-2005 94.3 K
stapler/ 19-Aug-2011 77.5 K
statcvs/ 01-Nov-2005 2.5 M
stax-utils/ 01-Nov-2005 112.4 K
stax/ 06-Nov-2006 1.6 M
stratum/ 01-Nov-2005 5.6 M
struts-menu/ 01-Nov-2005 869.9 K
struts/ 01-Nov-2005 11.8 M
strutstestcase/ 01-Nov-2005 1.1 M
stxx/ 01-Nov-2005 245.7 K
subpersistence/ 01-Nov-2005 237.3 K
subshell/ 01-Nov-2005 57.2 K
suiterunner/ 01-Nov-2005 501.9 K
surefire/ 28-Oct-2005 695.4 K
swarmcache/ 28-Oct-2005 31.6 K
swt/ 01-Nov-2005 9.7 M
sysunit/ 01-Nov-2005 1.0 M
tablelayout/ 01-Nov-2005 107.4 K
tagalog/ 01-Nov-2005 31.5 K
tagishauth/ 01-Nov-2005 53.1 K
taglibrarydoc/ 01-Nov-2005 608.4 K
taglibs/ 01-Nov-2005 30.1 M
tagsoup/ 05-Nov-2005 599 B
tambora/ 01-Nov-2005 4.7 M
tanukisoft/ 07-Mar-2008 3.3 M
tapestry/ 01-Nov-2005 36.5 M
tclib/ 01-Nov-2005 67.4 K
textarea/ 01-Nov-2005 66.9 K
thaiopensource/ 20-Oct-2006 779.6 K
tiffrenderer/ 01-Nov-2005 199.8 K
tjdo/ 01-Nov-2005 1.6 M
tk/ 07-Mar-2012 677.0 K
tl/ 11-Jul-2013 4.2 M
tmporb/ 01-Nov-2005 4.2 M
to/ 06-Nov-2012 9.9 M
tomcat-util/ 01-Nov-2005 843 B
tomcat/ 24-Jan-2008 64.4 M
tonic/ 08-Nov-2005 141.6 K
toplink/ 19-Aug-2011 598.8 M
torque-gen/ 01-Nov-2005 429 B
torque/ 12-Jan-2008 10.2 M
touchstone/ 01-Nov-2005 0 B
traer/ 03-Apr-2012 74.4 K
trail-taglib/ 01-Nov-2005 196.9 K
tranql/ 01-Nov-2005 6.9 M
trove/ 01-Nov-2005 999.4 K
turbine/ 01-Nov-2005 38.3 M
tv/ 21-Jul-2011 113.5 M
tw/ 12-Jun-2013 1.3 M
tyrex/ 01-Nov-2005 433.0 K
ua/ 06-Aug-2013 10.8 M
uaihebert/ 22-Feb-2013 832.3 K
ubique/ 01-Nov-2005 9.6 K
uispec4j/ 01-Nov-2005 2.5 M
uk/ 10-Jan-2013 825.2 M
urbanophile/ 01-Nov-2005 53.9 K
urlrewrite/ 24-Nov-2005 37.3 K
us/ 29-Aug-2013 72.3 M
vdoclet/ 01-Nov-2005 197.4 K
velocity-anakia/ 30-Apr-2007 22.1 K
velocity-dvsl/ 01-Nov-2005 4.2 M
velocity-tools/ 21-Dec-2012 1.6 M
velocity/ 30-Apr-2007 6.2 M
village/ 01-Nov-2005 142.9 K
vu/ 20-Jul-2013 1.5 M
wadi/ 01-Nov-2005 2.3 M
webmacro/ 01-Nov-2005 693.8 K
webtest/ 01-Nov-2005 395.7 K
werken-xpath/ 28-Oct-2005 75.4 K
werkflow/ 01-Nov-2005 792.5 K
werkz/ 01-Nov-2005 387.7 K
westhawk/ 01-Nov-2005 317.6 K
which/ 01-Nov-2005 18.1 K
wicket/ 12-Aug-2008 156.1 M
woodstox/ 14-Mar-2008 40.1 M
wrapper/ 01-Nov-2005 30.2 K
ws-commons-java5/ 01-Nov-2005 24.3 K
ws-commons-util/ 01-Nov-2005 104.3 K
ws-commons/ 19-Sep-2006 2.2 M
ws-scout/ 18-Feb-2006 146.9 K
ws/ 12-Jan-2013 14.8 M
wsdl4j/ 28-Feb-2013 3.9 M
wsrf/ 01-Nov-2005 4.4 M
wss4j/ 03-May-2006 1.0 M
wstx/ 01-Nov-2005 1016.4 K
wurfl/ 01-Nov-2005 145.8 K
wutka/ 01-Nov-2005 56.9 K
xajile/ 03-Aug-2009 0 B
xalan/ 30-Sep-2008 32.1 M
xbean/ 05-Jan-2006 537.6 K
xdoclet-plugins/ 03-Jul-2006 7.9 M
xdoclet/ 18-Jul-2008 7.0 M
xerces/ 16-Aug-2011 55.4 M
xercesjarv/ 01-Nov-2005 71.8 K
xfire-root/ 01-Nov-2005 4.9 K
xfire/ 06-Nov-2006 172.9 M
xjavadoc/ 01-Nov-2005 463.1 K
xml-apis/ 20-Aug-2011 5.1 M
xml-resolver/ 01-Nov-2005 345.3 K
xml-security/ 20-Oct-2006 2.1 M
xmlbeans/ 04-Jul-2007 28.3 M
xmldb/ 01-Nov-2005 96.2 K
xmlenc/ 01-Nov-2005 40.2 K
xmlmind/ 01-Nov-2005 210.3 K
xmlpull/ 01-Nov-2005 48.7 K
xmlrpc-helma/ 01-Nov-2005 54.4 K
xmlrpc/ 25-Jun-2006 2.2 M
xmlunit/ 08-Feb-2013 1.3 M
xmlwise/ 27-Oct-2012 81.4 K
xmlwriter/ 01-Nov-2005 763.3 K
xom/ 20-Oct-2006 3.8 M
xpp3/ 28-Oct-2005 3.0 M
xsddoc/ 01-Nov-2005 609.9 K
xsdlib/ 01-Nov-2005 489.9 K
xstream/ 28-Nov-2006 35.7 M
xtc/ 03-Apr-2012 5.6 M
xtiff-jai/ 01-Nov-2005 50.0 K
xxl/ 01-Nov-2005 1.7 M
yan/ 14-Jan-2006 4.6 M
ymsg/ 01-Nov-2005 371.8 K
yom/ 01-Nov-2005 110.8 K
za/ 23-May-2013 170.6 K
THE_NEW_REPO1_MACHINE.txt 27-May-2007 0 B
archetype-catalog.xml 14-Sep-2013 1.6 M
archetype-catalog.xml.md5 02-Aug-2013 32 B
archetype-catalog.xml.sha1 02-Aug-2013 40 B
diff.sh 28-Oct-2005 251 B
index.html.bak 03-Feb-2010 90 B
last_updated.txt 22-Sep-2013 29 B
maven-metadata.xml.md5 06-Dec-2007 0 B
maven-metadata.xml.sha1 06-Dec-2007 0 B
robots.txt 10-Nov-2009 26 B
rss.xml 06-May-2012 152.0 K
Posted by 1010
반응형

Hi I am developing a web application with eclipse and I generate the project with a maven archetype.

When I enable maven dependecy management, eclipse mark some errors in the pom file, this error is:

 Multiple annotations found at this line:
- Execution default-testResources of goal org.apache.maven.plugins:maven-resources-          plugin:2.4.3:testResources failed: 
 Plugin org.apache.maven.plugins:maven-resources-plugin:2.4.3 or one of its dependencies could not be resolved: Failed to collect 
 dependencies for org.apache.maven.plugins:maven-resources-plugin:jar:2.4.3 () (org.apache.maven.plugins:maven-resources-
 plugin:2.4.3:testResources:default-testResources:process-test-resources)
- Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile 
 (execution: default-compile, phase: compile)
- CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: 
 PluginResolutionException: Plugin org.apache.maven.plugins:maven-compiler-plugin:2.3.2 or one of its dependencies could not be 
 resolved: Failed to collect dependencies for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2 (): 
 ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.maven:maven-plugin-api:jar:2.0.6: 
 ArtifactResolutionException: Failure to transfer org.apache.maven:maven-plugin-api:pom:2.0.6 from http://repo1.maven.org/
 maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or 
 updates are forced. Original error: Could not transfer artifact org.apache.maven:maven-plugin-api:pom:2.0.6 from/to central (http://
 repo1.maven.org/maven2): null to http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-
 api-2.0.6.pom
- CoreException: Could not get the value for parameter compilerId for plugin execution default-testCompile: 
 PluginResolutionException: Plugin org.apache.maven.plugins:maven-compiler-plugin:2.3.2 or one of its dependencies could not be 
 resolved: Failed to collect dependencies for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2 (): 
 ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.maven:maven-plugin-api:jar:2.0.6: 
 ArtifactResolutionException: Failure to transfer org.apache.maven:maven-plugin-api:pom:2.0.6 from http://repo1.maven.org/
 maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or 
 updates are forced. Original error: Could not transfer artifact org.apache.maven:maven-plugin-api:pom:2.0.6 from/to central (http://
 repo1.maven.org/maven2): null to http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-
 api-2.0.6.pom
- Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.4.3:resources failed: Plugin 
 org.apache.maven.plugins:maven-resources-plugin:2.4.3 or one of its dependencies could not be resolved: Failed to collect 
 dependencies for org.apache.maven.plugins:maven-resources-plugin:jar:2.4.3 () (org.apache.maven.plugins:maven-resources-
 plugin:2.4.3:resources:default-resources:process-resources)
- Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:
 2.3.2:testCompile (execution: default-testCompile, phase: test-compile)

My pom file is the following:

<project xmlns="http://maven.apache.org/POM/4.0.0"                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.lala.sarasa</groupId>
   <artifactId>msrdecision</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>msrdecision Maven Webapp</name>
  <url>http://maven.apache.org</url>
 <dependencies>
   <dependency>
     <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>hello</finalName>
   </build>
 </project>

Any idea? Regards

share|improve this question
 
The errors hint that maven can't reach a remote repository. Does "mvn clean package" work on the console? –  KarlsFriend Jan 12 '12 at 12:33
 
no don't work, same error –  McSas Jan 12 '12 at 12:40
1  
my coworkers that use Windows are with same problem. I'm using ubuntu, same version of maven and eclipse, same project... and everything works fine... –  caarlos0 Apr 24 '12 at 18:04
add comment

12 Answers

In my case the problem was solved by Window -> Preferences -> Maven -> User Settings -> Update Settings. I don't know the problem cause at the first place.

share|improve this answer
add comment

I had the same problem but with an other cause. The solution was to deactivate Avira Browser Protection (in german Browser-Schutz). I took the solusion from m2e cannot transfer metadata from nexus, but maven command line can. It can be activated again ones maven has the needed plugin.

share|improve this answer
add comment

I also had same problem with Eclipse 3.7.2 (Indigo) and maven 3.0.4.

Eclipse wasn't picking up my maven settings, so this is what I did to fix the problem:

  1. Window - Preferences - Maven - Installations

    • Add (Maven 3.0.4 instead of using Embedded)
    • Click Apply & OK
  2. Maven > Update Project Configuration... on project (right click)

  3. Shutdown Eclipse

  4. Run mvn install from the command line.

  5. Open Eclipse

Those steps worked for me, but the problem isn't consistent. I've only had with issue on one computer.

share|improve this answer
add comment

I had a similar case for the default groovy compiler plugin

The solution was to install ME2 provided by Springsource according to this answer

Plugin execution not covered by lifecycle configuration maven error

This immediately solved the "Plugin execution not covered by lifecycle configuration" problem in Eclispe Juno.

share|improve this answer
add comment

in my case there was a dependency without a version. in eclipse m2e does not force you to enter a version so i left it blank. once i put the version in pom.xml from within eclipse all was fine

share|improve this answer
add comment

This error bothered me for two days. I tried all kinds of solutions, nothing worked. Finally I give up and tried a radical approach. and it worked! Here are the steps:

  1. Save a copy of the pom.xml,
  2. deleted all text in pom.xml
  3. Let eclipse do a clean rebuild, of course everything will be broken.
  4. pasted back everything in the original pom.xml
  5. let Eclipse build again

I guess it was "indeterministic" as the following article said.

http://wiki.eclipse.org/M2E_plugin_execution_not_covered

share|improve this answer
add comment

I would add some points that helped me to solve this problem :

Having the local repository OK, on the other hand, turned out to be quite costly, as many archetypes would not get loaded, due apparently to timeouts of m2eclipse and very unstable communication speeds in my case.

In many cases only the error file could be found in the folder ex : xxx.jar.lastUpdated, instead of the jar or pom file. I had always to suppress this file to permit a new download.

Also really worthy were :

  • as already said, using the mvn clean install from the command line, apparently much more patient than m2eclipse, and also efficient and verbose, at least for the time being.

  • (and also the Update Project of the Maven menu)

  • downloading using the dependency:get goal

    mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl=url -Dartifact=groupId:artifactId:version1

(from within the project folder) (hint given in another thread, thanks also).

  • also downloading and installing manually (.jar+.sha1), from in particular, "m2proxy atlassian" .

  • adding other repositories in the pom.xml itself (the settings.xml mirror configuration did'nt do the job, I don't know yet why). Ex : nexus/content/repositories/releases/ et nexus/content/repositories/releases/, sous repository.jboss.org, ou download.java.net/maven/2 .

To finish, in any case, a lot of time (!..) could have been et could certainly still be spared with a light tool repairing thoroughly the local repository straightaway. I could not yet find it. Actually it should even be normally a mvn command ("--repair-local-repository").

share|improve this answer
add comment

It must be a configuration problem. Your pom is fine.

Here's what I did. New folder, put your pom inside. Then in eclipse: import -> maven -> existing maven project. Dependencies got included in the project.

I did this using eclipse helios. I think the plugin version I am using is 0.12

You should check the maven properties in eclipse.

share|improve this answer
 
where are the maven properties in eclipse? –  McSas Jan 12 '12 at 12:32
 
I tried to put the pom file in a new folder. When I try to import the project eclipse show two erros: * No marketplace entries found to handle maven-compiler-plugin:2.3.2:testCompile in Eclipse. and * No marketplace entries found to handle maven-compiler-plugin:2.3.2:compile in Eclipse. // any idea? –  McSas Jan 12 '12 at 12:38
add comment

I solved this by running mvn -U install from command line and then "Maven->Update Project" from Eclipse

share|improve this answer
 
That solved my issue to, thanks! –  hithwen Jan 17 '13 at 16:12
1  
I had to first edit the pom.xml file to add the dependency on the module that was causing the problem (org.apache.maven.plugins:maven-jar-plugin, in my case), then OUTSIDE OF ECLIPSE run mvn clean and then mvn -U install in the project folder. Then I restarted eclipse and did a clean/build on the project and All Was Well. –  Laura Apr 23 '13 at 12:44
add comment

In this particular case, the solution was the right proxy configuration of eclipse (Window -> Preferences -> Network Connection), the company possessed a strict security system. I will leave the question, because there are answers that can help the community. Thank you very much for the answers above.

share|improve this answer
add comment

Just go to your user folder, inside it there's a ".m2" folder, open it and delete the folder "repository". Go to eclipse, clean your project, then right click->Maven->Update Project .. and you are ready to go.

share|improve this answer
 
That solve my issue! Very nice. :) –  Jojas Mar 23 '13 at 8:21
 
solved my issue as well! thanks –  Iced_Earth Aug 1 '13 at 20:54
 
Solved my problem..Thanks..:) –  james Sep 28 '13 at 11:46
add comment

I had same problem with Eclipse 3.7.2 (Indigo) and maven 3.0.4.

In my case, the problem was caused by missing maven-resources-plugin-2.4.3.jar in {user.home}\.m2\repository\org\apache\maven\plugins\maven-resources-plugin\2.4.3 folder. (no idea why maven didn't update it)

Solution:

1.) add dependency to pom.xml

<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.3</version>
</dependency>

2.) run mvn install from Eclipse or from command line

3.) refresh the project in eclipse (F5)

4.) run Maven > Update Project Configuration... on project (right click)

JAR file is downloaded to local repository and there are no errors in WS.

share|improve this answer
 
didn't work here... –  caarlos0 Apr 24 '12 at 18:04
 
did you checked that there is org\apache\maven\plugins\maven-resources-plugin\2.4.3 in repository ? –  Betlista Apr 24 '12 at 19:32
 
yep, 2.3, 2.4.3 and 2.5. Actually, after a lot of refreshes, mvn install eclipse:eclipse, cleans, close and reopen eclipse, it finally seem to work... but, it become with another error: "Unknow error". any idea? –  caarlos0 Apr 24 '12 at 20:14
 
Try to look into {eclipse.workspace}\.metadata\.log. –  Betlista Apr 25 '12 at 6:30

 

Posted by 1010
반응형

 


Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (execution: default-testCompile, phase: test-compile)


CoreException: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-compiler-plugin:2.3.2 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2: ArtifactResolutionException: Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:2.3.2 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.plugins:maven-compiler-plugin:pom:2.3.2 from/to central (http://repo.maven.apache.org/maven2): null to http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom


으악...도저히 모르겠다..해결방법을..ㅠ.ㅠ...



찾았다..ㅋㅋㅋ해결방법을~!!!

[결과]

 



참고링크!!
http://stackoverflow.com/questions/8834806/m2eclipse-error


해결방법

접기


Solution:

1.) add dependency to pom.xml

<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.3</version>
</dependency>

2.) run mvn install from Eclipse or from command line

3.) refresh the project in eclipse (F5)

4.) run Maven > Update Project Configuration... on project (right click)

JAR file is downloaded to local repository and there are no errors in WS.

접기


- 끝 -

 

출처: http://acet.pe.kr/194

Posted by 1010
반응형

출처 : http://bryan7.tistory.com/163

 

"쉽게 따라하는 자바웹개발" project error/warning 없애기.

도서명: 쉽게 따라하는 자바웹개발

출판사: 인사이트

지은이: 백기선

출판일: 2012년 11월 30일


1.3.2 프로젝트 다운로드 (10 page)

http://whiteship.me/book/legacy-sample.zip   (파일 다운로드)

https://github.com/keesun/legacy-sample    ( STS 에서 Import > Git )


개발툴: STS(Spring Tool Suite) Version: 3.4.0.RELEASE      Build Id: 201310051818


나는 STS 의 Import 메뉴를 이용해 github 에서 import  했다.


프로젝트를 빌드하면서 나는 대부분의 에러는 Maven 관련 에러였다.

인터넷을 통해 라이브러리(jar파일)을 가져오면서 완전히 다 못 가져온다던지, 파일 크기는 맞아도 jar 파일의 압축을 풀어보면 헤더가 손상되었다는 메시지가 출력되는 경우 등. - SHA-1 의 checksum 을 계산해서 ~.sha1 파일과 비교해보면 jar 파일이 온전한지를 확인할 수 있다.


이클립스(혹은 STS)에서 Problems View 에서 jar 파일명이 나오는 경우는 어느 jar 파일이 문제인지 쉽게 알 수 있지만, class 파일이 없다고 나오는 경우도 있고, - 이런 경우는 인터넷에서 검색해서 그 class 파일이 어느 jar 에 속해 있는지 알아야 한다.

어떤 경우는 Problems View 에는 error 가 없어도 실행해보면 에러가 나는 경우도 있다. 그러면 로그 파일을 보고 인터넷 검색을 해봐서 어느 클래스에서 문제가 있는지 확인해보고, 그 클래스가 속한 jar 파일이 온전한지를 체크해봐야 한다.


jar 파일의 checksum 이 맞지 않는다면 그 jar 가 속한 폴더를 통째로 지우고, 이클립스에서 clean 하고 다시 빌드를 한다.


나는 우리집 인터넷이 네트워크가 불안하다고는 생각하지 않고 있었는데, - 파일을 다운로드 받으면서 깨지거나 그런 경우는 없었다. - maven 을 통해 라이브러리를 가져오는 것이 왜 이렇게 불안한 것일까? maven 에서 다운로드 받는 로직을 개선해서 다운로드 받은 파일의 유효성을 체크해야 되는 것이 아닐까?


내 컴퓨터 내의 maven repository 내의 모든 jar 파일의 checksum 을 계산해서 맞지 않는 폴더를 출력해주는 스크립트라도 만들어 놔야 할 듯하다.


Spring 이나 Maven 을 처음 접해보는 사람이라면 책의 처음 예제에서 이런 많은 에러가 난다면 아마 4분의 3 은 포기하지 않을까? 좋은 책인데, Maven 관련해서 이렇게 많은 문제가 있는지 나도 실제로 돌려보고야 알았다.

봄싹 Google Groups 에 올라온, 이 책과 관련된 수많은 질문은 대부분 Maven 때문이었다.

저자인 백기선 님도 다음에는 자신의 컴퓨터의 maven repository 를 통째로 압축해서 CD 에 담아서 배포하겠다고 할 정도였다.


Error - Can not find the tag library descriptor for "http://www.springframework.org/tags/form"



Can not find the tag library descriptor for "http://www.springframework.org/tags/form"


<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>


이 에러는 치명적인 것처럼 보이지만, 실행에는 문제가 없다.

이 에러는 소스의 문제가 아니라 이클립스의 버그인 것 같다.

왜냐하면 spring의 tag library 가 spring-webmvc-3.0.5.RELEASE.jar 파일에 있는데, 이 파일을 project 의 WEB-INF/lib 폴더에 넣으면 에러가 사라지기 때문이다.




이 jar 파일은 Java Build Path 에서 Libraries 탭에 보면 Maven Dependencies 에 속해 있다.
그러면 이클립스에서 자동으로 인식해서 tag library를 찾아야 하는데, 꼭 WEB-INF/lib 에 있어야지만 된다니...


P.S.

모든 에러를 해결하고 나서 Tomcat 7 서버를 실행도 시켜본 후, /WEB-INF/lib 에서 spring-webmvc-3.0.5.RELEASE.jar 파일을 삭제하고 나서 clean 하고 다시 빌드해도 

Can not find the tag library descriptor for "http://www.springframework.org/tags/form"

라는 에러가 발생하지 않는다.

웹 서버가 실행되면서 Maven의 라이브러리가 /WEB/lib 폴더로 export 된 것으로 이클립스에서 인식한 것일까?



Error - Referenced file contains errors (http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd)



이 에러는 저자가 약간의 실수를 한듯 하다.

web.xml 파일에서 xml schema 정의한 부분이 좀 잘못 되었다.

그러나 web.xml 의 이런 XML 정의와 관련된 에러는 실행에는 문제가 없다.


이 에러의 해결책은 2가지다. 


<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

version="2.5"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd">


이렇게 되어 있는 부분을 다음과 같이 수정한다.


<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

version="2.4"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">


아니면 다음과 같이 수정한다.


<web-app version="2.5"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


version 을 2.5 로 하려면 j2ee 로 되어 있는 부분을 javaee 로 수정하면 된다.


[출처] http://stackoverflow.com/questions/13437569/what-does-this-web-xml-error-mean


web-app_2_5.xsd 파일을 다운로드 받아보면 상단에


<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"

   targetNamespace="http://java.sun.com/xml/ns/javaee"

   xmlns:javaee="http://java.sun.com/xml/ns/javaee"

   xmlns:xsd="http://www.w3.org/2001/XMLSchema"

   elementFormDefault="qualified"

   attributeFormDefault="unqualified"

   version="2.5">


이렇게 되어 있다.


참고로 Tomcat 7 은 Servlet 3.0 까지 지원하고, Tomcat 6 는 Servlet 2.5 까지 지원, Tomcat 5.5 는 Servlet 2.4 버전까지 지원한다고 한다. [출처] http://stackoverflow.com/questions/8400301/cout-unknown-tag


[참고] 서블릿 버전별 DTD - http://antop.tistory.com/145



Warning - Unknown tag (Spring Custom Tag 를 인식못하고 warning 이 나는 경우)




별로 대단한 것은 아니다. 단순히 무시해도 되는 Warning 이지만, 이 warning 을 없애려면


web.xml 에서 <welcome-file-list> 태그 뒤에


<jsp-config>

<taglib>

<taglib-uri>http://www.springframework.org/tags/form</taglib-uri>

<taglib-location>/WEB-INF/tlds/spring-form.tld</taglib-location>

</taglib>

</jsp-config>


를 갖다붙인다.


spring-form.tld 파일은 

C:\Users\{사용자명}\.m2\repository\org\springframework\spring-webmvc\3.0.5.RELEASE\spring-webmvc-3.0.5.RELEASE.jar 파일의 압축을 풀어보면 META-INF 폴더 안에 들어있다.


spring-form.tld 파일을 복사해서 내 프로젝트의 WEB-INF 밑에 web.xml 에서 정의된 경로에 갖다 놓지 않으면 warning 은 없어지지만 실행 시 에러가 나서 해당 페이지가 뜨지 않는다.


에러메시지: 

org.apache.jasper.JasperException: /WEB-INF/views/member/form.jsp (line: 3, column: 71) File "/WEB-INF/tlds/spring-form.tld" not found


[참고] No tag library could be found with this URI ( http://antop.tistory.com/146 )

Tomcat 7 서버에서는 web.xml 에 <taglib> 를 정의하지 않아도 별 문제가 없지만, 웹로직 서버에서는 에러가 난다는 내용이다.



실행 시 Error - javax.validation.ValidationException: Unable to find a default provider


Build Error 를 다 해결하고 나서 웹 브라우저로 접속 시 첫화면은 잘 뜬다.



그런데, 웹 브라우저에서 http://localhost:8080/app/member/form 로 접속 시 500번 에러가 나는 경우이다.



org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0': Invocation of init method failed; nested exception is javax.validation.ValidationException: Unable to find a default provider


Error log 를 봐도 소스의 어디에서 이상이 있는지를 알 수 없다.


javax.validation.ValidationException: Unable to find a default provider 를 Google 에서 검색해보면

이 에러는 hibernate-validator 라는 jar 파일과 관련이 있다는 것을 알 수 있다.


[출처] http://blog.naver.com/muchine98/140161045048


위 블로그의 내용을 발췌해 보자면,


Spring MVC 에서 JSR 303 @Valid Annotation 을 사용하기 위해서는 아래와 같이 hibernate-validator 라이브러리를 포함시켜야 한다.


<dependency>

 <groupId>org.hibernate</groupId>

 <artifactId>hibernate-validator</artifactId>

 <version>4.2.0.Final</version>

</dependency>


이름은 Hibernate이지만 실제로 하는 역할은 Validation과 관련된 것 뿐이다. 만약 다른 javax.validation 패키지를 지원하는 라이브러리를 등록한다면, WAS 서버 기동 시javax.validation.ValidationException: Unable to find a default provider라는 에러가 발생한다.


이후 세팅은 아래 링크를 참조한다.

http://www.mkyong.com/spring-mvc/spring-3-mvc-and-jsr303-valid-example/


legacy-sample 프로젝트의 pom.xml 에서 hibernate-validator 으로 검색해 보면


<dependency>

            <groupId>org.hibernate</groupId>

            <artifactId>hibernate-validator</artifactId>

            <version>4.0.0.GA</version>

        </dependency>


이제 C:\Users\{사용자명}\.m2\repository\org\hibernate\hibernate-validator\4.0.0.GA 폴더로 가서

hibernate-validator-4.0.0.GA.jar 를 검사해보자.

SHA-1 로 checksum 을 구해봐도 hibernate-validator-4.0.0.GA.jar.sha1 의 내용과 같지 않고, 압축을 풀어보면 에러가 나면서 압축이 풀리지 않는 것을 알 수 있다.


이제 C:\Users\{사용자명}\.m2\repository\org\hibernate\hibernate-validator\4.0.0.GA 폴더를 지우고, 프로젝트를 clean 하고 다시 빌드해보자. 그러면 eclipse 에서 pom.xml 에 정의된 라이브러리가 없는 경우 자동으로 다시 다운로드 받는다.


이런 경우가 Maven 의 잘못된 라이브러리 다운로드 때문에 실행 시 알수 없는 에러가 나는 경우이다.

 

Posted by 1010
반응형
error code :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project bb: Compilation failure

원인(여러가지가 있음)
1. 메이븐이 꼬임
2. jar파일이 제대로 읽히지 않아 에러
3. jdk 경로가 잘못 잡힘
4. jee에 tools.jar 가 추가되어 있지 않음

대처법
1. sub project maven clean -> main project maven clean -> main project maven build(즉, 모든 Project의 Maven clean , Install, build)
(sub project가 없을 시에는 main project만 clean)
2. pom.xml에서 Run As -> Run Configurations… -> Resolve Workspace artifacts 체크
(이 경우 이미 install 된 파일이 local에 있다면 불가능(서브 프로젝트로 넣고 있는데 workspace를 계속 검사해 jar 파일을 찾기 때문))
3.  Preferences -> java -> Installed JREs -> jdk 선택 -> Edit -> Directory -> jre를 jdk 폴더 안에 있는것으로 변경
4. Properties -> java build path -> jre 선택 -> Execution environment의 Environments 버튼 선택 ->
Add Extenal JARs 버튼 선택 -> tools.jar가 있는 jdk 경로 선택 -> finish

 

출처 : http://blog.naver.com/my464?Redirect=Log&logNo=150177934109 

Posted by 1010
반응형

Maven으로 구성한 웹 프로젝트가 있다. Eclipse에서 디버깅을 하기 위해 Tomcat과 같은 WAS 설정을 하고 프로젝트를 디플로이 해서 사용하고 있었다. 헌데.. 이 잘 되던 프로젝트가 다른 사람의 Eclipse로 옮기거나 Eclipse 설정을 다시 할 때 아래와 같은 알 수 없는 ClassNotFoundException을 찍 뱉으며 실행이 되지 않는 경우가 종종 있다.

아래 오류가 이상한건.. Maven dependency로 잡아준 라이브러리의 클래스가 존재하지 않는다는 어처구니 없는 메시지이기 때문이다. 분명히 이쁘게 잘 잡아준 라이브러리가 존재하지 않는다고 하니 멍하니 하늘만 쳐다볼 뿐.. (아래 오류는.. Maven으로 Spring 라이브러리를 잡아 주었는데도 불구하고 WAS가 그 라이브러리를 인식하지 못 해서 못 찾는 오류 내용이다.)

정보: Starting Servlet Engine: Apache Tomcat/6.0.20
2011. 2. 8 오후 1:45:20 org.apache.catalina.core.StandardContext listenerStart
심각: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3877)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)


구글링을 해도 돌아오는 대답은 WAS의 라이브러리 경로에 해당 라이브러리 jar 파일을 넣어주라는 것 뿐.. 하지만 그럴거면 왜 힘들게 Maven을 쓰노?? Maven으로 라이브러리 종속 관계를 편하게 설정하고 사용하기 위한 것 아닌고?? 미친척 하고 오늘 하루 종일 아무 일도 안 하고 구글링만 했다. 오오~~ 우연히 발견한 반짝반짝 빛이 나는 멋진 글!! TㅅT


해결 방법은 Eclipse 프로젝트의 .classpath 파일에 다음과 같이 적어주어서.. 프로젝트를 WAS로 디플로이 할 때 프로젝트의 라이브러리를 함께 사용할 수 있도록 설정해 주어야 한다는 것!! 굳이 내용을 살짝 살펴보면 Maven으로 추가한 라이브러리(org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER)를 /WEB-INF/lib 경로로 넣어서 WAS에 배포될 때 함께 사용할 수 있도록 한다.. 정도?? -ㅅ-;;

<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>



.classpath 파일은 workspace 경로에 해당 프로젝트 폴더 최상위에 존재한다. Eclipse에서는 Package Explorer나 Project Explorer에서는 숨겨져 있어 보이지 않고 Navigator view를 사용하면 볼 수 있다.


 




이 문제로 매번 고생하면서 오늘도 몇 시간을 날렸는데.. 답은 의외로 너무 간단하게 1줄.. 아.. 죽갔네.. 이런 문제 젤 시러.. -ㅅ-;;




수정 덧)
권남님의 덧글로 더 쉽게 설정하는 방법을 알았다. 정말 감사합니다~~
프로젝트를 오른쪽 클릭하고 "Properties"를 선택하여 Properties 창을 연다. 그리고 왼쪽 메뉴(?)에서 "Deployment Assembly"를 선택하면, WAS에 배포될 때 함께 사용될 녀석들을 관리할 수 있다. Maven Dependency로 걸린 녀석들을 라이브러리로 추가하기 위해 "Java Build Path Entries"를 선택한다.



그리고 "Maven Dependencies"를 선택하면 끝~~



이렇게 설정되면 .classpath 파일에 위에 쓰여진 내용이 자동으로 설정된다. 으흐~~ 쉽다~~ ㅋㅋ

Posted by 1010
반응형
이클립스에서 나는 에러메시지들
Failure to transfer org.apache.maven.plugins:maven-jar-plugin:pom:2.3.1 from http://myrepository
was cached in the local repository, resolution will not be reattempted until the 
 update interval of Nexus has elapsed or updates are forced. Original error: Could not transfer artifact 
 org.apache.maven.plugins:maven-jar-plugin:pom:2.3.1 from/to XXX( http://myrepository ): The operation was cancelled.

Description Resource Path Location Type
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-jar-plugin:2.3.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-jar-plugin:jar:2.3.1 pom.xml /MyProject  line 1 Maven Build Problem

이런 에러가 나서 구글링 해봤더니 stack overflow에서 아래와 같은 답변들을 찾았다.
http://stackoverflow.com/questions/5074063/maven-problem-failure-to-transfer 
http://stackoverflow.com/questions/4220960/maven-build-failure-failure-to-find-plugins 
http://stackoverflow.com/questions/4856307/when-maven-says-resolution-will-not-be-reattempted-until-the-update-interval-of  

적용해봐도 소용없었다.
에러메시지를 조금 더 자세히보니 무슨 tools.jar 가 없다네?
이거 이클립스에서 사용하는 jre를 바꿔줘야되나?
Preferences->Java->Installed JREs 에서 jdk를 사용하도록 바꿔준다.

그럼 해결! 

 

출처 : http://gladtosee.tistory.com/archive/201203 

 

Posted by 1010
반응형

Maven 프로젝트 체크아웃 시 다음과 같은 에러에 직면할 수 있다.

ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.commons:com.springsource.org.apache.commons.logging:jar:1.1.1: ArtifactResolutionException: Failure to transfer org.apache.commons:com.springsource.org.apache.commons.logging:pom:1.1.1 from http://repository.springsource.com/maven/bundles/release was cached in the local repository, resolution will not be reattempted until the update interval of com.springsource.repository.bundles.release has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.commons:com.springsource.org.apache.commons.logging:pom:1.1.1 from/to com.springsource.repository.bundles.release (http://repository.springsource.com/maven/bundles/release): No route to host to http://repository.springsource.com/maven/bundles/release/org/apache/commons/com.springsource.org.apache.commons.logging/1.1.1/com.springsource.org.apache.commons.logging-1.1.1.pom    pom.xml    /spring.test    line 1    Maven Dependency Problem


이 경우 다음과 같이 한다.

Maven -> Update Dependencies


다음을 체크하고, OK 버튼을 클릭한다.

Force Update of Snapshots/Releases


혹시 왜 이런 문제가 발생하는지 아시는 분이 있다면,

코멘트 부탁드립니다 :-)

출처 : http://devday.tistory.com/2018

Posted by 1010
52.Apache Project &.../Maven2013. 12. 31. 15:44
반응형

 


Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (execution: default-testCompile, phase: test-compile)


CoreException: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-compiler-plugin:2.3.2 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2: ArtifactResolutionException: Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:2.3.2 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.plugins:maven-compiler-plugin:pom:2.3.2 from/to central (http://repo.maven.apache.org/maven2): null to http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom


으악...도저히 모르겠다..해결방법을..ㅠ.ㅠ...



찾았다..ㅋㅋㅋ해결방법을~!!!

[결과]

 



참고링크!!
http://stackoverflow.com/questions/8834806/m2eclipse-error


해결방법

접기


Solution:

1.) add dependency to pom.xml

<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.3</version>
</dependency>

2.) run mvn install from Eclipse or from command line

3.) refresh the project in eclipse (F5)

4.) run Maven > Update Project Configuration... on project (right click)

JAR file is downloaded to local repository and there are no errors in WS

출처 : http://acet.pe.kr/194

Posted by 1010
52.Apache Project &.../Maven2013. 12. 31. 15:04
반응형

이클립스에서 메이븐 프로젝트를 만들어서 쓰다보면 아래와 같은 에러가 나는 경우가 있다.


Description Resource Path Location Type Could not calculate build plan: Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:2.0.2 from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.plugins:maven-compiler-plugin:pom:2.0.2 from/to central (http://repo1.maven.org/maven2): No response received after 60000 ExampleProject Unknown Maven Problem


메이븐에서 의존성이 있는 라이브러리를 다운로드받는 중에서 실패한 경우, lastUpdated 파일이 있으면 다운로드가 실패하더라도 라이브러리를 새로 업데이트 받지 못하는 문제인 듯 하다.


아래의 명령어를 실행한 후, 이클립스에서 인덱스를 업데이트 하면 해결이 가능하다.


find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;


다른 해결책도 있으며, 아래의 참조를 읽어보라.

http://stackoverflow.com/questions/5074063/maven-error-failure-to-transfer


출처 : http://socurites.com/139

Posted by 1010
반응형

출처 : http://lng1982.tistory.com/133

FTP 모듈을 사용하게 될 일이 생겨 예전에 만들었던 FTP 프로그램을 메이븐 프로젝트로 옮기게 되었다. 


내가 만든 FTP 모듈은 NetComponents-1.3.8.jar 라이브러리를 필요로 하는데 메이븐 중앙 리포지토리에서는 해당 라이브러리를 관리 안하고 있었다.


결국 아래와 같은 명령어를 이용하여 .m2\repository 디렉토리에 NetComponents-1.3.8.jar를 추가하여 문제를 해결 할 수 있었다.


mvn install:install-file -Dfile=C:\NetComponents-1.3.8.jar -DgroupId=com.oroinc -DartifactId=NetComponents -Dversion=1.3.8 -Dpackaging=jar -DgeneratePom=true


빨간색 글씨 부분을 상황에 맞게 변경해 주면 되고, 명령어를 실행하면 .m2\repository 경로에 class 파일이 install 된다.



NetComponents-1.3.8.jar

 

Posted by 1010
52.Apache Project &...2011. 6. 11. 17:18
반응형
톰캣 6.0 에서 웹사이트 여러개 운영하기 (2)


톰캣에서 하나의 IP로 여러개의 웹사이트를 운영하는 방법은 2가지가 있다.


# 가상 호스트(Virtual Host)를 이용하는 방법
# IP Address의 port를 여러개 사용하는 방법


여기서는 가상 호스트를 이용하여 톰캣에서 여러개의 웹사이트를 운영하는 방법에 대해서 설명하고자 한다.
설치 환경은 다음과 같다.


* O/S : Windows XP (Windows Server 동일)
* Tomcat 6.0.10


설명의 편의를 위해 톰캣의 설치 디렉토리는 'TOMCAT_HOME' 으로 표기할 것이다. 참고로 내 경우는 C:\Server\Tomcat6.0 이다.

설정하는 방법은 /TOMCAT_HOME/conf/에 있는 server.xml 파일만 수정하면 된다. server.xml의 쓸데없는 주석부분을 다 없애고 관련 부분만 남겨놓으면 아래와 같다.

<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>

</Engine>
</Service>


위의 내용에서 핵심 부분은 <Host></Host> 영역이다.

1. 우선 <Connector port="8080" protocol="HTTP/1.1" 부분의 port를 80으로 수정한다.
도메인명이 기본으로 80포트를 사용하기 때문이다.

2. <Host>... </Host> 에 해당하는 부분을 복사하여 2개를 만든다. 그리고 이렇게 수정하자.



<Host name="www.myweb1.com" appBase="d:/webapps/myweb1"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>

<Host name="www.myweb2.com" appBase="d:/webapps/myweb2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>


appBase="webapps" 는 톰캣의 기본 웹루트인 TOMCAT_HOME/webapps 디렉토리를 가르킨다. 웹사이트를 원하는 디렉토리에 두고 싶다면 d:/webapps/myweb1 처럼 자기가 지정하고 싶은 곳으로 수정하면 된다.

3. 마지막으로 웹사이트들의 ROOT 디렉토리를 지정해주자. 아래의 폴더를 생성한다.

d:/webapps/myweb1/ROOT/
d:/webapps/myweb1/ROOT/WEB-INF/

d:/webapps/myweb2/ROOT/
d:/webapps/myweb2/ROOT/WEB-INF/

그리고 WEB-INF 폴더 밑에 각각 web.xml 파일을 추가한다. 그냥 /TOMCAT_HOME/webapps/ROOT/WEB-INF/에 있는 web.xml 을 복사하면 된다.

4. 테스트하기 위해 ROOT/index.html 또는 index.jsp를 만든다.

이제 톰캣을 재시작하고 웹브라우저로 접속해 보자.
http://www.myweb1.com
http://www.myweb2.com

정말 간단하지 않은가?
톰캣 6.0에서 웹사이트 여러개 운영하기 (1)
아파치와 연동없이 톰캣만으로도 하나의 IP로 다수의 웹사이트를 운영하는 것이 가능하다.
(아파치와 톰캣을 연동하는 방법에 대해서는 차후에 자세히 올리도록 하겠다)

특히 개발자의 경우 여러개의 프로젝트를 개발하거나 테스트하고자 할 때 웹사이트를 여러개 운영해야한다. 다수의 웹 사이트를 세팅하는 방법은 크게 2가지가 있다.


* 가상호스트를 이용하는 방법
* IP Address의 port를 여러개 사용하는 방법


가상호스트를 이용하는 방법은 도메인을 이용하여 실제로 서비스를 운영하는 경우가 아니면 개발자에겐 별 의미가 없다. 여기서는 두번째 방법인 IP 어드레스의 포트를 이용하는 방법에 대해서 설명하겠다. (바로가기 : 톰캣에서 가상 호스트를 이용하는 방법)
우선 설치 환경은 다음과 같다.


* O/S : Windows XP (난 아직 리눅스를 잘 모른다. 비슷하겠지만 테스트해보지 않았다)
* Tomcat 6.0 (정확히는 6.0.10) : 다운로드


설명의 편의를 위해 톰캣의 설치 디렉토리는 'TOMCAT_HOME' 으로 표기할 것이다. 참고로 내 경우는 C:\Server\Tomcat6.0 이다.

설정하는 방법은 간단하다. /TOMCAT_HOME/conf/에 있는 server.xml 파일만 수정하면 끝이다. server.xml의 쓸데없는 주석부분을 다 없애고 핵심부분만 남겨놓으면 아래와 같다.


<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>

</Engine>
</Service>



우선 빨간색으로 표시한 부분만 이해하고 넘어가도 상관없다.
Connector port="8080"은 HTTP로 넘어오는 포트를 지정하는 것이다. 톰캣의 기본 포트가 8080인 이유가 여기에 있다. 따라서 8080 대신 기본 80포트를 사용하고 싶다면? 바로 이 부분을 port="80"으로 바꾸어주면 된다.

다음, Host 지시어의 appBase="webapps" 는 웹어플리케이션(웹사이트)의 위치를 나타낸다. appBase="./webapps"와 같은 의미다. 실제 위치는 TOMCAT_HOME/webapps이다. 물론 "d:/weapps/myweb1" 과 같이 절대경로로 지정하는 것도 가능하다.

그럼 웹사이트를 하다 더 추가하고 싶다면? 위의 <Service>...</Service>를 하나 더 만들어 버리면 된다. 위의 코드를 복사한 다음 server.xml 에 추가한다. 그리고 빨간색으로 표시한 부분만 수정하자.


<Service name="Catalina2">
<Connector port="9090" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

<Engine name="Catalina2" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>

<Host name="localhost" appBase="d:/webapps/myweb2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>


다른 웹어플리케이션을 돌리기 위해 서비스를 하나 더 추가한 것이다.
port="9090" 은 새로 추가하고 싶은 포트이다.
appBase="d:/webapps/myweb2"는 9090 포트에서 돌아갈 웹사이트 위치이다.

이제 server.xml 설정은 끝난 것이다.
마지막으로 웹사이트의 ROOT 디렉토리를 지정해주자. 아래의 폴더를 생성한다.

d:/webapps/myweb2/ROOT/ (
d:/webapps/myweb2/ROOT/WEB-INF/
(WEB-INF 폴더를 만들고 web.xml 파일을 추가한다. 그냥 /TOMCAT_HOME/webapps/ROOT/WEB-INF/에 있는 web.xml 을 복사하면 된다.

무지 간단하다. 하지만 난 이 간단한 것을 위해서 하루종일 삽질해야만 했다. 검색해 보아도 문서는 많은데 실제 도움이 될만한 것이 별로 없었다.

테스트하기 위해 ROOT/index.html 또는 index.jsp를 만든다.
이제 톰캣을 재시작하고 웹브라우저로 접속해 보자.
http://localhost:8080
http://localhost:9090

출처 : http://dbdb.tistory.com/rss

+++++
ROOT 디렉토리의 이름을 바꾸고 싶다면
<Host name="localhost" appBase="d:/dev/myweb">
<Context path="" docBase="d:/dev/myweb"/> <!-- 추가-->
</Host>


Posted by 1010
52.Apache Project &.../Maven2010. 11. 25. 17:39
반응형
Install Maven
  1. Maven (version2.0.5)에서 구하는 파일 : / / Iwdbackup / iwd_apps / Maven 또는 http://maven.apache.org/download.html Obtain Maven (version2.0.5) from file://Iwdbackup/iwd_apps/Maven or http://maven.apache.org/download.html
  2. 지퍼 maven - 당신은 Maven을 설치하고자하는 디렉토리로 2.0.5 - bin.zip. Unzip maven-2.0.5-bin.zip to the directory you wish to install Maven.
  3. 예를 들어, 귀하의 경로에 bin 디렉토리를 추가합니다. Add the bin directory to your path, eg. 설정의 PATH = "에 C : \ 프로그램 파일 \ maven - 2.0.5 \ Bin입니다"; % 경로 % SET PATH="C:\Program Files\maven-2.0.5\bin";%PATH%
  4. JAVA_HOME은 JDK는의 위치로 설정되어 있는지 확인합니다. Make sure that JAVA_HOME is set to the location of your JDK.
  5. 실행 mvn - 그건가 올바르게 설치되었는지 확인하는 버전입니다. Run mvn --version to verify that it is correctly installed.

참고 내부 Intelliware 리포지 토리에 수정 maven의 settings.xml. Modify maven's settings.xml to reference internal Intelliware repositories.

  1. <maven에 덮어쓰기 표준 settings.xml이 하나 directory> / conf의 설치 : settings.xml. Overwrite a standard settings.xml in <maven install directory>/conf with this one: settings.xml.

를 사용하여 Maven은 응용 프로그램을 만드는 Use Maven to create an application

Maven은 신속하게 프로젝트를 여러 종류를 만들 수 있도록 원형 메커니즘을 제공합니다. Maven provides an archetype mechanism to allow you to quickly create different kinds of projects. 몇 가지 일반 전형과 같습니다 : Some common archetypes are:

  • 웹 어플 리케이션을위한 maven - 원형 - webapp maven-archetype-webapp for web applications
  • maven - 원형 - 간단한 - 퀵 스타트 원형 간단한 프로젝트를 생성하는 maven-archetype-simple - quick start archetype to generate simple project
  • maven - 원형 사이트 원형 - 귀하의 프로젝트를위한 사이트 docummentation을 만들 수 maven-archetype-site archetype - to create a site docummentation for your project

리스트에 대해보다 포괄적인 걸 볼 Codehaus 전형 목록 For a more comprehensive list see Codehaus's Archetypes List
당신은 또한 자신의 전형을 만들 수 있습니다. You can also create your own archetypes. 이렇게하려면의 maven 참조 전형 만들기 가이드 To do so, refer to maven's Guide to Creating Archetypes

예 : 웹 응용 프로그램 만들기 Example: Creating a web application

당신의 프로젝트가 생성되고 싶어 어디 디렉토리에 다음 명령을 실행 : Run a following command in the directory where you want your project to be created:

mvn의 원형 : 작성 mvn archetype:create
     = ca.intelliware - DgroupId -DgroupId=ca.intelliware
     = simpleWebApp - DartifactId -DartifactId=simpleWebApp
     - DarchetypeArtifactId = maven - 원형 - webapp -DarchetypeArtifactId=maven-archetype-webapp

그 결과는 : The result is:
simpleWebApp simpleWebApp
+ - pom.xml +-- pom.xml
+ - src에 / +-- src/
    + - 메인 / +-- main/
         + - 자원 / +-- resources/
         + - webapp / +-- webapp/
            + - index.jsp +-- index.jsp
            + - 웹 inf를 / +-- WEB-INF/
                + - web.xml +-- web.xml

당신이 (또는 다른) 명령을 실행하여 처음, Maven은 명령을 수행하기 위해 필요로하는 모든 플러그인과 관련된 종속성을 다운로드해야합니다. The first time you run this (or any other) command, Maven will need to download all the plugins and related dependencies it needs to fulfill the command. 그것을 실행할 시간을 먼저 그러므로 당신은 언제 시간이 몇 가지가 있습니다 가져가라. Therefore it might take some time when you run it for the first time.

Maven이 의존성을 관리하기 위해 저장소의 개념을 사용합니다. Maven uses the concept of repositories to manage your dependencies. 당신은 maven을 다운로드했을 때 그것을 설치, 그것은 귀하의 지역 저장소를 만듭니다. When you download maven and install it, it creates your local repository. 언제부터 우리가 말한 "maven 다운로드 종속성 그들을"도착이 말은 우리가 maven repo의 로컬 저장소에 복사 그들을. When we say "maven downloads dependencies" we mean it gets them from the maven repo and copies them to your local repository.

예 : 간단한 응용 프로그램 만들기 : Example: Creating a simple application:

mvn의 원형 : 생성해주 - DgroupId = ca.intelliware - DartifactId = simpleWebApp mvn archetype:create -DgroupId=ca.intelliware -DartifactId=simpleWebApp

pom.xml의 이해가 Making sense of pom.xml

당신은 당신의 주 프로젝트 디렉터리에 pom.xml 파일을 만들어 프로젝트를, 통지 만들 maven 사용하신 경우. When you've used maven to create your project, notice that it created a pom.xml file in your main project directory. 이 파일은 (모델 객체 arcronym의 프로젝트) 프로젝트에 대한 정보의 중요한 조각을 포함하는 모든과 프로젝트를위한 찾는 것도 관련하여 쇼핑 - 그만 - 하나입니다 본질적으로. This file (arcronym of Project Object Model) contains every important piece of information about your project and is essentially one-stop-shopping for finding anything related to your project. 그것에 대해 자세히 알아보려면 다음 사이트를 방문 폼은 소개로 . To learn more about it, visit Introduction to the POM .

Intelliware에 대한 샘플 폼은 : Intelliware Maven 인프라 표시에 대한 구성을 포함하는 폼은 파일의 예를 들면. For an example of a POM file that includes configuration for the Intelliware Maven infrastructure see: Sample POM for Intelliware.

롤에 Maven Maven on a roll

우리는 우리의 프로젝트가 만든 이제, 우리는 코드에 추가하고 Maven 속임수의 완전히 새로운 가방을 이용하고 있습니다. Now that we have our project created, we can add in our code and utilize a whole new bag of Maven tricks.

파일을 프로젝트의 pom.xml과 같은 디렉토리에서 실행해야합니다 모든 Maven 명령을해야합니다. Note all Maven commands must be run in the same directory as the project's pom.xml file.

  • mvn 시험 : 응용 프로그램에 대한 실행 JUnit 테스트. mvn test: Runs the JUnit tests for the application.
  • mvn 패키지 :. 우리의 프로젝트에서 WAR 파일을 생성합니다. mvn package: Creates a .war file from our project.
  • 설치 mvn가 : 우리의 프로젝트를 추가 전쟁을 저장소에 필요한 경우 종속성으로 사용하기 위해.. mvn install: Adds our project .war to the repository for use as a dependency if needed.
  • mvn 사이트 : 생성하는 프로젝트 웹사이트. mvn site: Generates the project website.
  • mvn 청소 : 청소하기 출력이 대상 디렉토리에 만들었습니다. mvn clean: Cleans the output created in the target directory.
  • mvn 일식 : 일식 : 생성 이클립스 프로젝트 파일입니다. mvn eclipse:eclipse: Generates an Eclipse project file.

어디, "테스트", "패키지"및 Maven 라이프 사이클 단계는 "사이트"및 "일식"입니다 Maven 플러그인있는 "설치". Where, "test", "package", and "install" are Maven lifecycle phases, and "site" and "eclipse" are Maven plugins.

웹서버 배포 및 실행 Deploy to WebServer and Run

빠르고 쉽게 The Quick and Easy Way

우리는 지금 부두 웹 서버에 응용 프로그램을 배포할 수 있으며, 입력하여 그것을 실행하십시오 : We can now deploy the application to the Jetty webserver and run it by entering:

mvn의 org.mortbay.jetty가 : maven - 부두 - 플러그인 : 실행 mvn org.mortbay.jetty:maven-jetty-plugin:run
우리는 다음 페이지에 충돌하고 행동하는 우리의 응용 프로그램을 참조하십시오 : We can then hit the page and see our application in action:

http://localhost:8080/simpleWebApp/ http://localhost:8080/simpleWebApp/

pom.xml에서 웹서버를 정의 Defining the Webserver in your pom.xml

지정 프로젝트의 pom.xml에 귀하의 웹 서버 (예를 들면 아래와 부두입니다)에 대한 플러그인 : Specify the plugin for your web server in the project's pom.xml (the example below is for Jetty):

<plugin> <plugin> 
    <groupId>의 org.mortbay.jetty의 </ groupId> <groupId>org.mortbay.jetty</groupId> 
    <artifactId> maven은 - 부두 - 플러그인 </ artifactId> <artifactId>maven-jetty-plugin</artifactId>
<이 / 플러그인> </plugin>
우리는 실행하여 다음 시작하는 웹 애플 리케이션을 수 있습니다 : We can then startup the web app by running:
mvn 부두 : 실행 mvn jetty:run


--------------------

Maven 설치하기
  1. Obtain Maven (version2.0.5) from file://Iwdbackup/iwd_apps/Maven or http://maven.apache.org/download.html Maven (version2.0.5)에서 구하는 파일 : / / Iwdbackup / iwd_apps / Maven 또는 http://maven.apache.org/download.html
  2. Unzip maven-2.0.5-bin.zip to the directory you wish to install Maven. 지퍼 maven - 당신은 Maven을 설치하고자하는 디렉토리로 2.0.5 - bin.zip.
  3. Add the bin directory to your path, eg. 예를 들어, 귀하의 경로에 bin 디렉토리를 추가합니다. SET PATH="C:\Program Files\maven-2.0.5\bin";%PATH% 설정의 PATH = "에 C : \ 프로그램 파일 \ maven - 2.0.5 \ Bin입니다"; % 경로 %
  4. Make sure that JAVA_HOME is set to the location of your JDK. JAVA_HOME은 JDK는의 위치로 설정되어 있는지 확인합니다.
  5. Run mvn --version to verify that it is correctly installed. 실행 mvn - 그건가 올바르게 설치되었는지 확인하는 버전입니다.

Modify maven's settings.xml to reference internal Intelliware repositories. 참고 내부 Intelliware 리포지 토리에 수정 maven의 settings.xml.

  1. Overwrite a standard settings.xml in <maven install directory>/conf with this one: settings.xml. <maven에 덮어쓰기 표준 settings.xml이 하나 directory> / conf의 설치 : settings.xml.

Use Maven to create an application 를 사용하여 Maven은 응용 프로그램을 만드는

Maven provides an archetype mechanism to allow you to quickly create different kinds of projects. Maven은 신속하게 프로젝트를 여러 종류를 만들 수 있도록 원형 메커니즘을 제공합니다. Some common archetypes are: 몇 가지 일반 전형과 같습니다 :

  • maven-archetype-webapp for web applications 웹 어플 리케이션을위한 maven - 원형 - webapp
  • maven-archetype-simple - quick start archetype to generate simple project maven - 원형 - 간단한 - 퀵 스타트 원형 간단한 프로젝트를 생성하는
  • maven-archetype-site archetype - to create a site docummentation for your project maven - 원형 사이트 원형 - 귀하의 프로젝트를위한 사이트 docummentation을 만들 수

For a more comprehensive list see Codehaus's Archetypes List 리스트에 대해보다 포괄적인 걸 볼 Codehaus 전형 목록
You can also create your own archetypes. 당신은 또한 자신의 전형을 만들 수 있습니다. To do so, refer to maven's Guide to Creating Archetypes 이렇게하려면의 maven 참조 전형 만들기 가이드

Example: Creating a web application 예 : 웹 응용 프로그램 만들기

Run a following command in the directory where you want your project to be created: 당신의 프로젝트가 생성되고 싶어 어디 디렉토리에 다음 명령을 실행 :

mvn archetype:create mvn의 원형 : 작성
     -DgroupId=ca.intelliware = ca.intelliware - DgroupId
     -DartifactId=simpleWebApp = simpleWebApp - DartifactId
     -DarchetypeArtifactId=maven-archetype-webapp - DarchetypeArtifactId = maven - 원형 - webapp

The result is: 그 결과는 :
simpleWebApp simpleWebApp
+-- pom.xml + - pom.xml
+-- src/ + - src에 /
    +-- main/ + - 메인 /
         +-- resources/ + - 자원 /
         +-- webapp/ + - webapp /
            +-- index.jsp + - index.jsp
            +-- WEB-INF/ + - 웹 inf를 /
                +-- web.xml + - web.xml

The first time you run this (or any other) command, Maven will need to download all the plugins and related dependencies it needs to fulfill the command. 당신이 (또는 다른) 명령을 실행하여 처음, Maven은 명령을 수행하기 위해 필요로하는 모든 플러그인과 관련된 종속성을 다운로드해야합니다. Therefore it might take some time when you run it for the first time. 그것을 실행할 시간을 먼저 그러므로 당신은 언제 시간이 몇 가지가 있습니다 가져가라.

Maven uses the concept of repositories to manage your dependencies. Maven이 의존성을 관리하기 위해 저장소의 개념을 사용합니다. When you download maven and install it, it creates your local repository. 당신은 maven을 다운로드했을 때 그것을 설치, 그것은 귀하의 지역 저장소를 만듭니다. When we say "maven downloads dependencies" we mean it gets them from the maven repo and copies them to your local repository. 언제부터 우리가 말한 "maven 다운로드 종속성 그들을"도착이 말은 우리가 maven repo의 로컬 저장소에 복사 그들을.

Example: Creating a simple application: 예 : 간단한 응용 프로그램 만들기 :

mvn archetype:create -DgroupId=ca.intelliware -DartifactId=simpleWebApp mvn의 원형 : 생성해주 - DgroupId = ca.intelliware - DartifactId = simpleWebApp

Making sense of pom.xml pom.xml의 이해가

When you've used maven to create your project, notice that it created a pom.xml file in your main project directory. 당신은 당신의 주 프로젝트 디렉터리에 pom.xml 파일을 만들어 프로젝트를, 통지 만들 maven 사용하신 경우. This file (arcronym of Project Object Model) contains every important piece of information about your project and is essentially one-stop-shopping for finding anything related to your project. 이 파일은 (모델 객체 arcronym의 프로젝트) 프로젝트에 대한 정보의 중요한 조각을 포함하는 모든과 프로젝트를위한 찾는 것도 관련하여 쇼핑 - 그만 - 하나입니다 본질적으로. To learn more about it, visit Introduction to the POM . 그것에 대해 자세히 알아보려면 다음 사이트를 방문 폼은 소개로 .

For an example of a POM file that includes configuration for the Intelliware Maven infrastructure see: Sample POM for Intelliware. Intelliware에 대한 샘플 폼은 : Intelliware Maven 인프라 표시에 대한 구성을 포함하는 폼은 파일의 예를 들면.

Maven on a roll 롤에 Maven

Now that we have our project created, we can add in our code and utilize a whole new bag of Maven tricks. 우리는 우리의 프로젝트가 만든 이제, 우리는 코드에 추가하고 Maven 속임수의 완전히 새로운 가방을 이용하고 있습니다.

Note all Maven commands must be run in the same directory as the project's pom.xml file. 파일을 프로젝트의 pom.xml과 같은 디렉토리에서 실행해야합니다 모든 Maven 명령을해야합니다.

  • mvn test: Runs the JUnit tests for the application. mvn 시험 : 응용 프로그램에 대한 실행 JUnit 테스트.
  • mvn package: Creates a .war file from our project. mvn 패키지 :. 우리의 프로젝트에서 WAR 파일을 생성합니다.
  • mvn install: Adds our project .war to the repository for use as a dependency if needed. 설치 mvn가 : 우리의 프로젝트를 추가 전쟁을 저장소에 필요한 경우 종속성으로 사용하기 위해..
  • mvn site: Generates the project website. mvn 사이트 : 생성하는 프로젝트 웹사이트.
  • mvn clean: Cleans the output created in the target directory. mvn 청소 : 청소하기 출력이 대상 디렉토리에 만들었습니다.
  • mvn eclipse:eclipse: Generates an Eclipse project file. mvn 일식 : 일식 : 생성 이클립스 프로젝트 파일입니다.

Where, "test", "package", and "install" are Maven lifecycle phases, and "site" and "eclipse" are Maven plugins. 어디, "테스트", "패키지"및 Maven 라이프 사이클 단계는 "사이트"및 "일식"입니다 Maven 플러그인있는 "설치".

Deploy to WebServer and Run 웹서버 배포 및 실행

The Quick and Easy Way 빠르고 쉽게

We can now deploy the application to the Jetty webserver and run it by entering: 우리는 지금 부두 웹 서버에 응용 프로그램을 배포할 수 있으며, 입력하여 그것을 실행하십시오 :

mvn org.mortbay.jetty:maven-jetty-plugin:run mvn의 org.mortbay.jetty가 : maven - 부두 - 플러그인 : 실행
We can then hit the page and see our application in action: 우리는 다음 페이지에 충돌하고 행동하는 우리의 응용 프로그램을 참조하십시오 :

http://localhost:8080/simpleWebApp/ http://localhost:8080/simpleWebApp/

Defining the Webserver in your pom.xml pom.xml에서 웹서버를 정의

Specify the plugin for your web server in the project's pom.xml (the example below is for Jetty): 지정 프로젝트의 pom.xml에 귀하의 웹 서버 (예를 들면 아래와 부두입니다)에 대한 플러그인 :

<plugin> <plugin> 
    <groupId>org.mortbay.jetty</groupId> <groupId>의 org.mortbay.jetty의 </ groupId> 
    <artifactId>maven-jetty-plugin</artifactId> <artifactId> maven은 - 부두 - 플러그인 </ artifactId>
</plugin> <이 / 플러그인>
We can then startup the web app by running: 우리는 실행하여 다음 시작하는 웹 애플 리케이션을 수 있습니다 :
Posted by 1010
52.Apache Project &.../Maven2010. 11. 25. 16:26
반응형


maven의 의미#

maven은 유대어로 '지식 축적기'라고 하는데, Jakarta Turbine 프로젝트를 간소화 하기 위해서 시작했었다. 각각의 프로젝트에는 여러개의 ant빌드 파일이 있는데, 각각 약간씩 다르고, JAR파일도 약간 다른 파일을이 CVS에 체크인되어 있어서.... 표준 프로젝트 개발 툴로 만들려고 어쩌고 저쩌고...

http://maven.apache.org/what-is-maven.html

ant와 비교하여 maven의 장점#

정형화된 절차를 제공한다.#

ant는 모든 과정을 사용자가 코딩해야 하지만, maven은 compile, package, test 등등 작업 프로세스를 정형화 시키고 이를 준수하도록 강제한다.

프로젝트의 소스 트리 구성도 src/main/... 과 같은 패턴을 따르도록 제시하고 있다.

라이브러리 의존성 해결을 자동화한다.#

open source 라이브러리의 경우 maven의 central repository에 모두 저장하고 있어서, 의존성이 있는 라이브러리의 명세만 입력해주면, 자동으로 다운로드 하여 class path에 걸어주기 때문에, 따로 처리할 필요가 없다.

라이브러리 관리의 편의성을 증대시켜준다.#

보통 소스 개발할때, 라이브러리를 SCM(Software Configuration Management)툴에서 관리하는데, 이는 불필요한 공간을 낭비하게 할 뿐 아니라, 버전별 관리도 어렵게한다.

maven에서는 라이브러리 전용 레파지토리를 제공하므로, 통합 관리가 가능하다.


maven 이용 전략#

  1. 프로젝트 빌드 및 디버깅은 eclipse를 최대한 활용한다.
  2. 라이브러리 의존성 관련 처리는 maven을 이용한다.

maven 설치#

  1. http://maven.apache.org/download.html 에서 apache-maven-2.1.0-bin.zip 을 다운로드 한다. (*nix계열이라면 tar.gz이나 tar.bz2가 좋다 )
  2. apache-maven-2.0.10-bin.zip을 설치를 원하는 디렉토리에 압축을 푼다. (eg. c:\Work\lib\apache-maven-2.1.0\)
  3. M2_HOME 환경변수를 '시스템 등록정보'창을 열어서(Window Key + Pause), c:\Work\lib\apache-maven-2.1.0 과 같이 추가해준다. 중간에 공백이 있더라도 따옴표를 넣지 않도록 한다. 또한 Maven < 2.0.9 에서는  맨 마지막에 \를 넣지 말것
  4. 3번의 다이얼로그에서 M2 환경변수를 %M2_HOME%\bin 으로 추가한다.
  5. 선택사항 :  3번 다이얼로그에서 MAVEN_OPTS 라는 변수로 -Xms256m -Xmx512m 같은 환경변수를 추가할 수 있다.

 m2eclipse 설치 ( eclipse plugin )#

  1. http://m2eclipse.codehaus.org/ 에가서  http://m2eclipse.sonatype.org/sites/m2e/  주소 확인후 eclipse 업데이트 주소에 입력후 플러그인 설치
  2. http://download.eclipse.org/releases/ganymede/ 가 plugin update경로에 없을 경우 의존성을 해결해주지 못하는 문제가 발생할 수 있다.

m2eclipse 사용 가이드


m2eclipse 버그

scope를 provided로 잡았는데, war패키지에 전체 내용이 들어가는 경우

eclipse에서 패키징을 할때, scope를 compile로 잡으면 기본적으로 WEB-INF/lib에 라이브러리를 복사한다.

이 작업이 임시 영역에서 이루어지는데...

나중에 scope를 compile -> provided로 바꾸더라도, 그 임시영역의 lib 파일들은 그대로 존재하게 되어, 같이 패키징된다.

이는 현재 버그로 등록 되어 있다.  https://issues.sonatype.org/browse/MNGECLIPSE-2217

해결 방법은 임시영역에서 lib이하의 파일들을 지워주는 것


maven 사용하기#

ant에서는 build.xml 파일에서 프로젝트의 빌드,테스트,디플로이등을 기술한다면, maven에서는 pom.xml 파일을 이용한다.

pom.xml 에는 다음과 같은 정보를 저장하고 있다.

  • 프로젝트 정보 - 프로젝트의 이름, 개발자 등
  • 빌드 정보 - 플러그인 등 빌드와 관련된 설정을 기술
  • 의존성,연관성정보 - 의존 프로젝트(모듈), 상위 프로젝트, 포함하고 있는 하위 모듈 등을 기술

기본 프로젝트 형태#

maven에서 제시하고있는 best practice의 프로젝트 구성은 다음과 같다.

우리 회사 같은 경우에는 web application도 함께 개발하므로, src/main/webapp 라는 폴더가 추가될 것이다. 프로젝트 성격에 따라서 약간의 변동은 있겠지만,

기본적인 뼈대는 아래와 같다.

 아래의 root디렉토리에 보면 pom.xml 파일이 있는데, 이 파일을 통해서 maven은 동작한다.


  1. my-app
    |-- pom.xml
    `-- src
        |-- main
        |   `-- java
        |       `-- com
        |           `-- mycompany
        |               `-- app
        |                   `-- App.java
        `-- test
            `-- java
                `-- com
                    `-- mycompany
                        `-- app
                            `-- AppTest.java

POM 파일의 형태#

POM 설정시의 용어 설명#

  • procject : pom.xml의 최상위 레벨 엘리먼트임
  • modelVersion : POM이 어떤 버전의 오브젝트 모델을 사용할 것인지
  • groupId : 프로젝트를 생성하기 위해 이용되는 유일한 그룹 아이디. 보통 소속 회사나 기관의 url명으로 사용함. eg. org.apache.maven.plugins 는 모든 maven plugin을 위한 그룹 id임
  • artifactId : 이 프로젝트에서 생성할 유니크한 이름. 보통 이 이름의 jar파일로 패키징된다. <artifactId>-<version>.<extenstion>으로 패키징된다.
  • packaging : JAR,WAR,EAR등 어떤 형태로 패키징할 것인지 기본값은 JAR이다.
  • version: 버전
  • name :
  • url :
  • description :

scope의 의미#

  • compile : 기본영역으로 아무것도 지정되지 않은 경우 사용됨. compile 의존관계에 있는 것은 프로젝트의 모든 클래스에서 사용가능함. 또한, 이와 같은 의존관계는 의존관계에 있는 프로젝트에 포함됨.
  • provided : compile 과 매우 유사하지만, 실행시 의존관계를 제공하는 JDK나 컨테이너에 대해서 적용됨. 예를 들어, JEE에 대한 웹 어플리케이션을 만드는 경우, 웹 컨테이너가 서블릿 API와 Java EE API관련 클래스들을 제공하기 때문에 provided 영역으로 의존관계가 세팅되어야 함. 이 영역은 컴파일과 테스트의 클래스패스 용으로 사용되며, 자동영역임.
  • runtime : 의존관계가 컴파일시 필요하지 않지만, 실행시 필요함을 의미함. 실행시와 테스트 클래스패스에 속하지만, 컴파일 클래스패스에는 속하지 않음.
  • test : 일반적인 어플리케이션 사용에 대해서는 의존관계가 필요없고, 테스트 컴파일과 실행 시점에만 사용됨.
  • system : 명시적으로 해당 JAR를 포함하는 것이 제공되어야 한다는 것을 제외하고 provided와 유사함. artifact는 항상 사용가능하며 레파지토리에서 검색하지 않음.
  • import (Maven 2.0.9 이후에서만 적용) : 이 영역은 <dependencyManagement>에서 pom의 의존관계에 대해서 사용됨. 지정된 POM이 해당 POM의 <dependencyManagement> 영역에 있는 의존관계로 대체됨을 의미함. 이것들이 대체되기 때문에 import 영역의 의존관계들은 실질적으로 의존에 대한 제약에 대해 관여하지 않음.
  • 참고 : http://homo-ware.tistory.com/43

servlet 개발을 위한 pom.xml 샘플#

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>MavenTestProject</groupId>
      <artifactId>MavenTestProject</artifactId>
      <packaging>war</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <build>
          <plugins>
              <plugin>
  2.               <!-- java 1.5 이상의 문법을 지원하기 위해서는 다음 설정이 필요하다. -->
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <configuration>
                      <source>1.5</source>
                      <target>1.5</target>
                  </configuration>
              </plugin>
          </plugins>
      </build>
      <dependencies>
          <dependency>
  3.           <!-- 서블릿 소스를 컴파일 하기 위해 필요하다. -->
              <groupId>javax.servlet</groupId>
              <artifactId>servlet-api</artifactId>
              <version>2.5</version>
              <scope>provided</scope>
          </dependency>
      </dependencies>
    </project>

EJB 개발을 위한 pom.xml 샘플#

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>TestEJBM2</groupId>
      <artifactId>TestEJBM2</artifactId>
      <packaging>ejb</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <build>
          <plugins>
              <plugin>
  2.               <!-- ejb 3.0 지원과,
  3.                    배포용 클라이언트 제작( 기본적으로 **/*Bean.class, **/*CMP.class, **/*Session.class and **/package.html 파일을 제외하고 패키징함 )
  4.                    http://maven.apache.org/plugins/maven-ejb-plugin/howto.html 참고
  5.               -->
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-ejb-plugin</artifactId>
                  <configuration>
                      <ejbVersion>3.0</ejbVersion>
                      <generateClient>true</generateClient>
                  </configuration>
              </plugin>
              <plugin>
  6.               <!-- java 1.5문법 지원 -->
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <configuration>
                      <source>1.5</source>
                      <target>1.5</target>
                  </configuration>             
              </plugin>
          </plugins>
      </build>
      <dependencies>
          <dependency>
  7.           <!-- 컴파일시 필요한 ejb관련 라이브러리 -->
              <groupId>javax.ejb</groupId>
              <artifactId>ejb-api</artifactId>
              <version>3.0</version>
          </dependency>
          <dependency>
  8.           <!-- 컴파일시 필요한 jboss 관련 라이브러리(jboss runtime을 전부 포함하는 것은 아님 -->
              <groupId>jboss</groupId>
              <artifactId>jboss</artifactId>
              <version>4.2.3.GA</version>
              <scope>provided</scope>
          </dependency>
          <dependency>
              <groupId>jboss</groupId>
  9.           <!-- 컴파일시 필요한 jboss-annotation 관련 라이브러리-->
              <artifactId>jboss-annotations-ejb3</artifactId>
              <version>4.2.3.GA</version>
              <scope>provided</scope>
          </dependency>
          <dependency>
  10.           <!-- 컴파일시 필요한 jboss-ejb3 관련 라이브러리-->
              <groupId>jboss</groupId>
              <artifactId>jboss-ejb3</artifactId>
              <version>4.2.3.GA</version>
              <scope>provided</scope>
          </dependency>
      </dependencies>
    </project>


maven의 settings.xml 파일 설정#

이 파일은 Maven의 사용자별 설정을 저장한다. pom.xml에 저장되지 않는, 개발자정보, 로컬 세팅, 레파지토리 정보등이 저장된다.

기본적으로 settings.xml 의 위치는 ~/.m2/settings.이다.


maven  repository#

maven을 사용하여 외부 라이브러리를 추가할때, groupId나 artifactId를 미리 알 수없어서 난감할 수가 있다.

예를들어 groupId=jboss,artifactId=jboss,version=4.2.3.GA인데, 이 값을 미리 알기는 쉬운 일이 아니다.

이럴땐 maven repository 검색 사이트를 이용하자.

일부 라이브러리는 라이센스의 문제로, maven repository에 넣을수 없다고 한다. 이럴때는 InternalServer에 등록해놓고, 이용하면 된다.


eclipse 통합환경에서 maven 이용하기#

Dynamic Web Proejct 이용시#

  1. Dynamic Web Proejct 로 프로젝트를 만든다.
  2. m2eclipse 플러그인을 이용하여 Maven관리 프로젝트로 변환
  3. 생성한 프로젝트 폴더의 .settings/org.eclipse.wst.common.project.facet.core.xml 파일을 열어서, <faceted-project> 태그 밑에 '<installed facet="jst.web" version="2.5"/>' 를 추가해준다. (원래는 프로젝트의 Properites 다이얼로그에서 되어야 하는데, 이클립스 버그인지 잘 안된다. )
  4. 프로젝트의 WebContent 아래의 META-INF와 WEB-INF 파일을 src/main/webapp 밑으로 옮겨준다.

EJB Project 사용시#


eclipse와 maven 통합 가이드 동영상#

문서를 보면 이해하기 어려울 수 있는 내용을 동영상을 통해 따라할 수 있도록 제작하였다.

  • maven 설치


  • maven plugin for eclipse 설치


  • Dynamic Web Project 생성하고 maven형식으로 변환


  • elcipse 프로젝트 형태로 deploy하고 디버깅 하기


  • maven으로 컴파일하여 deploy하기


  • InternalServer에 접속하여 의존성 해결하기

기업내 프로젝트의 repository관리 전략#


내부 repository 없이 개발하는 경우#

Maven_clip_image002_0001.jpg

기업내 repository를 이용하여 개발하는 경우#

Maven_clip_image002_0002.jpg


예외사항 처리#

m2eclipse 설치중 의존성 문제로 실패하는 경우#

XMLBuddy라는 플러그인이 깔려있으면 충돌난다.#

  • XMLBuddy라는 플러그인을 삭제해주어야 함

m2eclipse사용하여 컴파일 시 에러#

  • eclipse의 Installed JRE에 JRE로 되어 있으면 에러가 발생한다 -> JDK로 바꿔줘야 함.

    • 헷갈리지 않게 시스템 내의 JRE는 모두 지우자.

 eclipse 실행시 JDK를 이용해서 eclipse를 실행하라는 에러가 뜨는 경우#

테스트 없이 패키징 하기

  • -Dmaven.test.skip=true  옵션 추가


레퍼런스#

maven 공식 문서#


jboss 서블릿 컴파일#

internal repository 세팅하기#


기타#


추가할 내용#

todo#

  • maven을 서버로 deploy 하는법


출처 : http://alexk.springnote.com/pages/3501753
출처 : http://alexk.springnote.com/pages/3501753

Posted by 1010
반응형
(자카르타_스트럿츠완전해부)Section_1.pdf
Posted by 1010
반응형
갑자기 듣도 보도 못 한 웹서비스를 하게 됐다. 이건 언제 해본적도 없는 녀석이라 처음부터 잔뜩 겁먹고 시작.. 아니나 다를까.. 인수인계도 제대로 되지 않아서 아무도 모른다. 주변에 있는 사람들도 웹서비스를 해본 사람이 거의 없다. 나 오뜨케~~ @ㅅ@

일단, 기존 소스에 기능을 추가할 생각으로 JAX-RPC를 사용하려 했는데.. JAX-WS로 변경되는 바람에 기존에 쓰던 코드 조차 어찌 배포해야 하는지 아무도 모른다. =ㅅ=;;; 샘플이나 예제를 찾아봐도 그다지 도움이 되지 않네 그려.. 하루를 삽질하다가 GG치고 JAX-RPC 보다는 조금 더 사용하기 쉬운 Apache Axis2를 사용하기로 했다. Axis는 샘플도 많고, apache 사이트의 참조할 내용도 잘 되어 있다. 무엇보다 좋은건 Eclipse WTP에서 손쉽게 구현하는 기능이 있다!! 잇힝~~

java 소스를 먼저 만들고 wsdl 쪽으로 구성하는 bottom up 방법과, wsdl을 먼저 만들고 그에 따라 java 소스를 만드는 top down 방법이 있다. bottom up 방법은 한글로 너무나 이쁘게 정리가 되어 있는 포스팅이 있어서 엄청 도움이 됐다. 예전 버전이라 화면이 조금 다르지만 그냥 따라하면 술술 넘어가며 알아서 만들어 진다.


출처 : http://entireboy.egloos.com/4342149

Posted by 1010
반응형
Posted by 1010
반응형
/*

Database Programming with JDBC and Java, Second Edition

By George Reese
ISBN: 1-56592-616-1

Publisher: O'Reilly

*/


import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 * Example 4.2.
 */
public class Blobs {
  public static void main(String args[]) {
    if (args.length != 1) {
      System.err.println("Syntax: <java Blobs [driver] [url] "
          + "[uid] [pass] [file]");
      return;
    }
    try {
      Class.forName(args[0]).newInstance();
      Connection con = DriverManager.getConnection(args[1], args[2],
          args[3]);
      File f = new File(args[4]);
      PreparedStatement stmt;

      if (!f.exists()) {
        // if the file does not exist
        // retrieve it from the database and write it to the named file
        ResultSet rs;

        stmt = con.prepareStatement("SELECT blobData "
            + "FROM BlobTest " + "WHERE fileName = ?");

        stmt.setString(1, args[0]);
        rs = stmt.executeQuery();
        if (!rs.next()) {
          System.out.println("No such file stored.");
        } else {
          Blob b = rs.getBlob(1);
          BufferedOutputStream os;

          os = new BufferedOutputStream(new FileOutputStream(f));
          os.write(b.getBytes(0, (int) b.length()), 0, (int) b
              .length());
          os.flush();
          os.close();
        }
      } else {
        // otherwise read it and save it to the database
        FileInputStream fis = new FileInputStream(f);
        byte[] tmp = new byte[1024];
        byte[] data = null;
        int sz, len = 0;

        while ((sz = fis.read(tmp)) != -1) {
          if (data == null) {
            len = sz;
            data = tmp;
          } else {
            byte[] narr;
            int nlen;

            nlen = len + sz;
            narr = new byte[nlen];
            System.arraycopy(data, 0, narr, 0, len);
            System.arraycopy(tmp, 0, narr, len, sz);
            data = narr;
            len = nlen;
          }
        }
        if (len != data.length) {
          byte[] narr = new byte[len];

          System.arraycopy(data, 0, narr, 0, len);
          data = narr;
        }
        stmt = con.prepareStatement("INSERT INTO BlobTest(fileName, "
            + "blobData) VALUES(?, ?)");
        stmt.setString(1, args[0]);
        stmt.setObject(2, data);
        stmt.executeUpdate();
        f.delete();
      }
      con.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

           

Posted by 1010
반응형
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DemoDisplayBinaryDataFromDatabase {

  public static Connection getConnection() throws Exception {
    String driver = "oracle.jdbc.driver.OracleDriver";
    String url = "jdbc:oracle:thin:@localhost:1521:databaseName";
    String username = "name";
    String password = "password";
    Class.forName(driver);
    Connection conn = DriverManager.getConnection(url, username, password);
    return conn;
  }

  public static void main(String args[]) throws Exception {
    Connection conn = null;
    ResultSet rs = null;
    PreparedStatement pstmt = null;
    String query = "SELECT raw_column, long_raw_column FROM binary_table WHERE id = ?";
    try {
      conn = getConnection();
      Object[] results = new Object[2];
      pstmt = conn.prepareStatement(query);
      pstmt.setString(1, "0001");
      rs = pstmt.executeQuery();
      rs.next();
      // materialize binary data onto client
      results[0] = rs.getBytes("RAW_COLUMN");
      results[1] = rs.getBytes("LONG_RAW_COLUMN");
    } finally {
      rs.close();
      pstmt.close();
      conn.close();
    }
  }
}

Posted by 1010
반응형

import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class Main {
  static String url = "jdbc:oracle:thin:@localhost:1521:javaDemo";
  static String username = "username";
  static String password = "welcome";

  public static void main(String[] args) throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection conn = DriverManager.getConnection(url, username, password);
    conn.setAutoCommit(false);

    String sql = "INSERT INTO pictures (name, description, image) VALUES (?, ?, ?)";
    PreparedStatement stmt = conn.prepareStatement(sql);
    stmt.setString(1, "java.gif");
    stmt.setString(2, "Java Official Logo");

    File image = new File("D:\\a.gif");
    FileInputStream   fis = new FileInputStream(image);
    stmt.setBinaryStream(3, fis, (int) image.length());
    stmt.execute();

    conn.commit();
    fis.close();
    conn.close();
  }
}

Posted by 1010
반응형

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Main {
  static String url = "jdbc:oracle:thin:@localhost:1521:javaDemo";
  static String username = "username";
  static String password = "welcome";
  public static void main(String[] args) throws Exception {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection conn = DriverManager.getConnection(url, username, password);

    String sql = "SELECT name, description, image FROM pictures ";
    PreparedStatement stmt = conn.prepareStatement(sql);
    ResultSet resultSet = stmt.executeQuery();
    while (resultSet.next()) {
      String name = resultSet.getString(1);
      String description = resultSet.getString(2);
      File image = new File("D:\\java.gif");
      FileOutputStream fos = new FileOutputStream(image);

      byte[] buffer = new byte[1];
      InputStream is = resultSet.getBinaryStream(3);
      while (is.read(buffer) > 0) {
        fos.write(buffer);
      }
      fos.close();
    }
    conn.close();
  }
}

   

Posted by 1010
반응형
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import java.util.List;

public class DbUtilsUseBeanMySQL {
  public static void main(String[] args) {
    Connection conn = null;
    String jdbcURL = "jdbc:mysql://localhost/octopus";
    String jdbcDriver = "com.mysql.jdbc.Driver";
    String user = "root";
    String password = "root";

    try {
      DbUtils.loadDriver(jdbcDriver);
      conn = DriverManager.getConnection(jdbcURL, user, password);

      QueryRunner qRunner = new QueryRunner();
      List beans = (List) qRunner.query(conn, "select id, name from animals_table",
          new BeanListHandler(Employee.class));

      for (int i = 0; i < beans.size(); i++) {
        Employee bean = (Employee) beans.get(i);
        bean.print();
      }
    } catch (SQLException e) {
      // handle the exception
      e.printStackTrace();
    } finally {
      DbUtils.closeQuietly(conn);
    }
  }
}

class Employee {

  private int id;
  private String name;

  public Employee() {
  }

  public void setName(String name) {
      this.name = name;
  }

  public String getName() {
      return this.name;
  }

  public void setId(int id) {
      this.id = id;
  }

  public int getId() {
      return this.id;
  }

  public void print() {
      System.out.println("id="+id+" name="+name);
  }
}


Posted by 1010
반응형
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpVersion;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.HostConfiguration;

public class HttpClientParameter {

  public static void main(String args[]) throws Exception {

    HttpClient client = new HttpClient();
    client.getParams().setParameter("http.useragent", "My Browser");

    HostConfiguration host = client.getHostConfiguration();
    host.setHost("www.google.com");

    GetMethod method = new GetMethod("http://www.yahoo.com");

    int returnCode = client.executeMethod(host, method);

    System.err.println(method.getResponseBodyAsString());

    System.err.println("User-Agent: " + method.getHostConfiguration().getParams().getParameter("http.useragent"));

    System.err.println("User-Agent: " + method.getParams().getParameter("http.useragent"));

    method.releaseConnection();
  }
}

Posted by 1010
반응형
import org.apache.commons.httpclient.URI;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.HostConfiguration;

import org.apache.commons.httpclient.protocol.Protocol;

import java.io.File;
import java.io.IOException;
import java.io.FileOutputStream;

public class GetMethodExample {

  public static void main(String args[]) {

    HttpClient client = new HttpClient();
    client.getParams().setParameter("http.useragent", "Test Client");
    client.getParams().setParameter("http.connection.timeout",new Integer(5000));

    GetMethod method  = new GetMethod();
    FileOutputStream fos = null;

    try {

      method.setURI(new URI("http://www.google.com", true));
      int returnCode = client.executeMethod(method);

      if(returnCode != HttpStatus.SC_OK) {
        System.err.println(
          "Unable to fetch default page, status code: " + returnCode);
      }

      System.err.println(method.getResponseBodyAsString());

      method.setURI(new URI("http://www.google.com/images/logo.gif", true));
      returnCode = client.executeMethod(method);

      if(returnCode != HttpStatus.SC_OK) {
        System.err.println("Unable to fetch image, status code: " + returnCode);
      }

      byte[] imageData = method.getResponseBody();
      fos = new FileOutputStream(new File("google.gif"));
      fos.write(imageData);

      HostConfiguration hostConfig = new HostConfiguration();
      hostConfig.setHost("www.yahoo.com", null, 80, Protocol.getProtocol("http"));

      method.setURI(new URI("/", true));

      client.executeMethod(hostConfig, method);

      System.err.println(method.getResponseBodyAsString());

    } catch (HttpException he) {
      System.err.println(he);
    } catch (IOException ie) {
      System.err.println(ie);
    } finally {
      method.releaseConnection();
      if(fos != null) try { fos.close(); } catch (Exception fe) {}
    }

  }
}

Posted by 1010
반응형
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.commons.lang.exception.NestableException;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class ExceptionUtilsV1 {
  public static void main(String args[]) {
    try {
      loadFile();
    } catch(Exception e) {
      e.printStackTrace();
    }
  }

  public static void loadFile() throws Exception {
    try {
      FileInputStream fis =
       new FileInputStream(new File("nosuchfile"));
    } catch (FileNotFoundException fe) {
      throw new NestableException(fe);
    }
  }
}
Posted by 1010
반응형
import org.apache.commons.beanutils.BeanUtils;

import java.util.Map;
import java.util.Date;
import java.util.List;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.GregorianCalendar;

public class BeanUtilsExampleV2 {
  public static void main(String args[]) throws Exception {
    BeanUtilsExampleV2 diff = new BeanUtilsExampleV2();
    Movie movieBean = diff.prepareData();

    // create a new Movie with the same properties
    Movie newMovieBean = new Movie();
    BeanUtils.copyProperties(newMovieBean, movieBean);
    // Movie newMovieBean = (Movie)BeanUtils.cloneBean(movieBean);

    // change its title
    BeanUtils.setProperty(newMovieBean, "title", "Quills");

    // and date
    BeanUtils.setProperty(
      newMovieBean,
      "dateOfRelease",
      new GregorianCalendar(2000, 0, 1).getTime());

    // and director name
    BeanUtils.setProperty(newMovieBean, "director.name", "Philip Kaufman");

    // and director's home number
    BeanUtils.setProperty(
      newMovieBean,
      "director.contactNumber(Home)",
      "3349084333");

    System.err.println(BeanUtils.getProperty(movieBean, "title"));
    System.err.println(BeanUtils.getProperty(movieBean, "director.name"));
    System.err.println(BeanUtils.getProperty(
      newMovieBean,
      "director.contactNumber(Home)"));
  }

  private Movie prepareData() {
    Movie movie = new Movie();
    movie.setTitle("The Italian Job");
    movie.setDateOfRelease(new GregorianCalendar(1969, 0, 1).getTime());

    // sets the genre
    Map genre_map = new HashMap();
    genre_map.put("THR", "Thriller");
    genre_map.put("ACT", "Action");

    movie.setGenre(genre_map);

    // creates the Director
    Person director = new Person();
    director.setName("Peter Collinson");
    director.setGender(1);
    Map director_contacts = new HashMap();
    director_contacts.put("Home", "99922233");
    director_contacts.put("Mobile", "0343343433");
    director.setContactNumber(director_contacts);

    movie.setDirector(director);

    // create the actors
    Actor actor1 = new Actor();
    actor1.setName("Michael Caine");
    actor1.setGender(1);
    actor1.setWorth(10000000);
    List actor1_movies = new ArrayList();

    Movie movie2 = new Movie();
    movie2.setTitle("The Fourth Protocol");

    Movie movie3 = new Movie();
    movie3.setTitle("Shiner");

    actor1_movies.add(movie2);
    actor1_movies.add(movie3);

    actor1.setMovieCredits(actor1_movies);

    Actor actor2 = new Actor();
    actor2.setName("Margaret Blye");
    actor2.setGender(2);
    actor2.setWorth(20000000);

    List actors = new ArrayList();
    actors.add(actor1);
    actors.add(actor2);

    movie.setActors(actors);

    return movie;
  }
}
----------------------------------------------------------------------------


import java.util.List;

public class Actor extends Person {
  public Actor() {
  }

  public List getMovieCredits() { return this.movieCredits; }
  public void setMovieCredits(List movieCredits) {
    this.movieCredits = movieCredits;
  }

  public long getWorth() { return this.worth; }
  public void setWorth(long worth) { this.worth = worth; }

  private List movieCredits;
  private long worth;
}
----------------------------------------------------------------------------



import java.util.Map;
import java.util.List;
import java.util.Date;

public class Movie {
  public Movie() {
  }

  public Date getDateOfRelease() { return this.dateOfRelease; }
  public void setDateOfRelease(Date dateOfRelease) {
    this.dateOfRelease = dateOfRelease;
  }

  public String getTitle() { return this.title; }
  public void setTitle(String title) {this.title = title; }

  public Person getDirector() { return this.director; }
  public void setDirector(Person director) { this.director = director; }

  public List getActors() { return this.actors; }
  public void setActors(List actors) { this.actors= actors; }

  public String[] getKeywords() { return this.keywords; }
  public void setKeyWords(String[] keywords) { this.keywords = keywords; }

  public Map getGenre() { return this.genre; }
  public void setGenre(Map genre) { this.genre = genre; }

  private Date dateOfRelease;
  private String title;
  private Person director;

  private List actors;
  private String[] keywords;

  private Map genre;
}
----------------------------------------------------------------------------


import java.util.Map;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

public class Person {
  public Person() {
  }

  public String getName() {
    return this.name == null ? "NoName" : this.name; }
  public void setName(String name) { this.name = name; }

  public int getGender() { return this.gender; }
  public void setGender(int gender) {  // 0 - Indeterminate, 1 - Male, 2 - Female
    this.gender = (gender > 2 || gender < 0) ? 0 : gender; }

  public Map getContactNumber() { return this.contactNumber; }
  public void setContactNumber(Map contactNumber) {
    this.contactNumber = contactNumber;
  }

  /**public boolean equals(Object o) {
    if(o == this) return true;
    if(!(o instanceof Person)) return false;
    Person otherPerson = (Person)o;
    if(otherPerson.getName().equals(this.name) &&
       otherPerson.getGender() == this.gender) return true;

    return false;
  }*/

  public boolean equals(Object o) {
    if(!(o instanceof Person)) return false;

    Person otherPerson = (Person)o;
    return new EqualsBuilder()
               .append(name, otherPerson.getName())
               .append(gender, otherPerson.getGender())
               .isEquals();
  }

  public int hashCode() {
    return new HashCodeBuilder(7, 51)
               .append(name)
               .append(gender)
               .append(contactNumber)
               .toHashCode();
  }

  public String toString() {
    return new ToStringBuilder(this)
               .append("Name", name)
               .append("Gender", gender)
               .append("Contact Details", contactNumber)
               .toString();
  }

  private String name;
  private int gender;
  private Map contactNumber;
}
           

Posted by 1010
반응형
import org.apache.commons.dbcp.BasicDataSource;

import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.RowSetDynaClass;

import java.util.Iterator;
import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.PreparedStatement;

public class DynaBeansExampleV3 {
  public static void main(String args[]) throws Exception {

    Connection conn = getConnection();
    PreparedStatement ps =
      conn.prepareStatement(
        "SELECT * from movie, person " +
        "WHERE movie.director = person.Id");
    ResultSet rs = ps.executeQuery();

    RowSetDynaClass rsdc = new RowSetDynaClass(rs);

    conn.close();

    Iterator itr = rsdc.getRows().iterator();
    while(itr.hasNext()) {
      DynaBean bean = (DynaBean)itr.next();
      System.err.println(bean.get("title"));
    }


  }

  private static Connection getConnection() throws Exception {
    BasicDataSource bds = new BasicDataSource();
    bds.setDriverClassName("com.mysql.jdbc.Driver");
    bds.setUrl("jdbc:mysql://localhost/commons");
    bds.setUsername("root");
    bds.setPassword("");

//    bds.setInitialSize(5);

    return bds.getConnection();
  }
}
           
Posted by 1010