Search Results for 'Maven'

9 POSTS

  1. 2013.02.04 Maven Missing Artifact 오류발생 원인 1
  2. 2012.11.01 Spring MVC + Maven 쉽게 생성하기(개발환경 세팅 정리)
  3. 2010.04.23 Maven

요즘엔 대부분 프로젝트에서 Maven을 사용한 라이브러리(jar 파일)를 관리합니다.

하지만 오래된 프로젝트나 버전이 지원되지 않는 라이브러리의 경우 때문에 프로젝트 빌드도 안되는 문제가 발생하지요. 에고고...

특히 OS 재설치후 이클리스를 새로 설치하거나 했다면 repository 위치에는 기존에 다운받아놓은 jar가 하나도 없을것이기 때문에 이러한 오류가 발생할 확률은 더더욱 높습니다. 특히 윈도우 사용하시는 분들은 적어도 1년에 한번은 PC를 포맷하잖아요.^^


이런경우 대부분 로컬 maven repository가 비었기 때문에 모든 jar를 새롭게 다운받으려고 하는데, 원격 저장소에서 해당 jar를 지원하지 않는 경우가 있거나 하면 오류날 확률은 더더욱 커집니다. (이젠 네트웍이 안되면 개발도 못하는 세상입니다.)

그럼 직접 jar를 구해서 해야 할까요?


Maven의 많은 장점 중 하나는 의존관계에 있는 jar를 알아서 다운받아 주는 것이지요.

하지만 이는 또다른 쓸데없는 jar를 함께 다운받음으로 사용하지도 않는 jar를 함께 배포해야 하는 문제도 야기시킵니다. 특히 꼼꼼하지 못하거나 게으른 개발자는 다 포함시켜서 배포합니다. 

이클립스 프로젝트의 jar 목록을 보면 확실히 예전 maven을 사용하기전보다 많은 jar가 존재하는걸 볼수 있습니다.


지난주에 오픈프레임워크에서 프로젝트 하나를 다운받아 로컬에서 실행시켜 보려고 했었습니다. 파일다운로드 관련...

물론 pom.xml 에 의해 관련 jar를 다운받는데, 대부분이 missing으로 나오더군요. 거의 99%이상이...


여러개의 삽질을 시도하다가 지정된 repositories 부분을 전부 삭제해버렸습니다.

그랬더니 80% 정도의 jar가 다운받아지더군요. 

repositories 를 일일이 지정하는 경우는 아마도 프로젝트 특성에 따라 뭔가를 제한하거나 별도의 jar를 만들어서 재 배포할때 사용하는 경우가 아닌가 생각됩니다. 일반적인 경우라면 없어도 상관이 없을듯 합니다.


그래도 여전히 남아 있는 missing ....

이후부터 몇개는 관련 artifactId, artifactId를 검색하면서 변경했습니다. 이클립스 pom.xml dependencies 에서 검색하면서...

http://www.mvnrepository.com/ 사이트에서도 검색이 가능하네요.


버전 맞지 않는 부분 변경완료하니 대략 95%쯤 완료된듯 합니다..

이렇게 해서 마지막으로 받지 못한 남은 jar가 3개.


아무리 봐도 jms, jmxtools, jmxri 관련 jar를 요청하는 부분은 없는데, build path Libraries 의 Maven dependency에는 관련 jar를 다운받지 못해 (missing)이라고 표시합니다.


어찌어찌하여 검색한 log4j 의 의존성 관련 jar 목록입니다.

This artifact depends on ...

GroupArtifactVersion
com.sun.jdmkjmxtools1.2.1
com.sun.jmxjmxri1.2.1
javax.jmsjms1.1
javax.mailmail1.4
junitjunit3.8.1
orooro2.0.8


 jms, jmx, jmxri 등의 jar 파일을 요청하는 녀석은 log4j 였던 것이지요.


왜 해당 jar 를 다운받지 못한것인지는 알수 없으나 아마도 Sun 이 Oracle로 인수되면서 몇몇 패키지에 대한 지원이 더이상 안되는게 아닌가 의심(?) 을 해봅니다. (지극히 개인적인 의견임) 이전 글에도 나와있지만 이제 Sun이 오라클에 인수되면서 오라클의 영역권에 놓이게 된 자바는 더이상 예전의 자바가 아닌듯 합니다.


Anywhere... log4j 에서 다운받지 못하는 관련 jar를 제외시켜버렸습니다. 요렇게요...


<Before>

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.15</version>

</dependency>


<After>

             <dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.15</version>

<exclusions>

<exclusion>

<groupId>com.sun.jmx</groupId>

<artifactId>jmxri</artifactId>

</exclusion>

<exclusion>

<groupId>com.sun.jdmk</groupId>

<artifactId>jmxtools</artifactId>

</exclusion>

<exclusion>

<groupId>javax.jms</groupId>

<artifactId>jms</artifactId>

</exclusion>

</exclusions>

</dependency>


그제서야 더이상 jmx, jmx, jmxri 등의 jar를 찾지 않게 되는군요.


Maven 을 사용할때 주의해야 할것은 필요없는 jar는 위와 같이  exclude 시키는 것이 여러모로 좋을 것입니다. 이유야 뭐...


이제 앞으로는 " http://www.mvnrepository.com/ " 이 사이트를 좀더 자주 방문하게 될것 같습니다.


Maven 을 좀더 알고 써야겠습니다. 다른것도 마찬가지지만...



0. 이제부터 개발시작. 근데 개발환경부터 구축해야 하는데, 한동안 개발을 쉬었더니 까먹... 난 까마귀 고기를 넘 좋아하나보다.

Eclipse Juno 를 설치했다가 넘 버벅이고 뭔가 맘에 안들어서 Indigo로 빽...

예전엔 JDK, Eclipse, SVN, SVN Connector, Eclipse UTF-8 환경 변경, Tomcat 설치의 순서로 세팅하고 바로 개발을 했는데,

어느순간 스프링3.0 이후부터 뭔가 많이 자동화가 되었다는 분위기를 감지하고 바로 검색.

 

그 첫번째가  Spring Tool Suite + MAVEN.

Spring의 첫번째 설정은 어렵게 한번 해놓으면 변경할일이 없기에 까먹기가 대부분. xml과 친해지기 싫은건 어쩔수 없나보다.

 

1. Spring MVC 환경 세팅

Spring Tool Suite 와 MAVEN 을 이용하면 Spring Template Project를 이용하여 Spring MVC 프로젝트를 자동으로 만들어 준다.

세팅하고 실행하면 알아서 Hello World를 찍어주니 이 얼마나 환상인가?

 

참고 블로그 : http://springmvc.egloos.com/429779

 

위의 과정대로 하다가 안되는 경우가 발생한다. 아마도 기존의 똥 고집이 있어서 그런듯.

시스템 Path 에 아래의 환경변수를 생성해서 잡아주란다.

JAVA_HOME

CATALINA_HOME

MAVEN_HOME

이게 어느쩍 시대에 하던걸 지금에서 하라는건가?

System PATH에 잡아주는 일은 과거 개발환경 구축할때 행했던 일이라서 굳이 하지 않아도 되겠다고 판단한다면? 더 많은 삽질이 기다리고 있으니 걍 고분고분 따라하자

 

사용자 변수가 아닌 시스템변수에 생성하자. 사용자 변수에 했더니 역시나 안된다.

 

그 다음 민감한 부분이 Tomcat이다.

기존 설치된 Tomcat 을 이용해서 실행했더니 안되다. 그래서 다시 다운받고 CATALINA_PATH 잡아주고 실행.

 

2. Spring MVC + MyBatis 환경 설정.

 

이전 iBatis에서 대세는 MyBatis로 급 선회됨.

노가다성인 Domain 객체를 생성하기 싫다면 MyBatis Generator plugin 을 설치하자.

 

http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/

 

자세한 설치법은 다음의 블로그를 참고 : http://antop.tistory.com/131

 

 

3. Eclipse UTF-8 한방에 구성 끝내기

utf-8 환경구성 관련 포스팅 검색해보면 대부분 enc 로 검색해서 일일이 인코딩 설정을 업데이트하라고 나온다.

파일에 따라서 다른 인코딩을 사용하려면 위의 수고스러운 방법을 동원해야겠으나 다같은 인코딩을 적용할꺼라면 다음의 옵션한방으로 끝.

eclipse.ini 에 -Dfile.encoding=UTF-8 한줄만 추가하면 끝.

 

 

 

[다음포스팅] locale & localization 구성하기

참고 블로그 : http://choija.com/216

 

 

 



Maven

Posted 2010. 4. 23. 17:01
:이런저런 복잡한 정의 필요없고, 프로젝트 빌드를 편하게 해주는 한마디로 Ant 보다 발전된 빌드 도구형식을 띤 관리툴?
Project Object Model(POM)에 기반하고 있음.
프로젝트에 관련된 라이브러리를 관리함.

1. 설치
   다운받아서 압축풀고 환경변수의 시스템변수에 추가(MAVEN_HOME이라는 이름으로 했음.).
   그리고 실행파일이 있는 bin 경로를 path에 추가.
   C:\>mvn -version 결과가 나오면 성공.
(eclipse에서만 작업하는 경우 일반적으로 시스템 변수에 JAVA_HOME이 없는 경우가 있다.
mvn도 기본적으로 jre가 아닌 JDK 경로가 path에 잡혀야 하므로 javac 명령어가 실행될수 있도록 path에 등록해 줘야 한다.
java 명령어는 jre만으로도 가능하기때문에 꼭 javac 명령어로 체크하기 바람)

자세한 설명은 여기서 참조

2. Sample Project 실행
Spring Integration Sample소스를 받아서 압축을 푼뒤 해당 프로젝트 폴더로 이동한뒤,
~\>mvn install
명령어를 치니 크지 않은 프로젝트임에도 로그가 한참 올라간다.
주로 프로젝트에 포함될 해당 jar 파일 다운로드와 eclipse프로젝트에 사용할 .settings, classpath 를 생성한다.



블로그를 읽으면서 다시 찾아본 관련용어 :
WTP(Web Tool Platform)
m2eclipse : eclipse에서 maven 프로젝트를 만들기 위한 eclipse plugin



« PREV : 1 : 2 : 3 : NEXT »