워니퍼님의 글이 확실히 도움이 되었습니다.

이클립스가 workspace 중심이라면 인텔리J는 프로젝트 중심입니다. 이클립스의 워크스페이스는 프로젝트 그룹입니다.


습관이란 게 무서운 것이더군요. 이클립스에서 JUnit 테스트 케이스는 자동으로 프로젝트에 라이브러리를 추가해줍니다. IntelliJ 매뉴얼을 보니, "우리는 자동으로 테스트케이스 라이브러리를 추가하지 않습니다."라고 되어 있네요.


JAR, 즉 junit.jar를 추가하는 방법입니다.


hellojunit이라는 새로운 프로젝트를 만들었습니다.


Preferences...에서 찾을 수 없습니다.


File > Project Preferences... 메뉴가 따로 있습니다.


Project Settings 섹션에 Modules를 선택하고, Dependencies 탭을 선택합니다.


Jars or directories를 통해서 연결하면 됩니다.


1.7.0 뿐만 아니라 다른 버전도 멈춰서네요.

Downloading: http://maven.springframework.org/milestone/org/aspectj/aspectjtools/1.7.0.RC1/aspectjtools-1.7.0.RC1.pom

Downloaded: http://maven.springframework.org/milestone/org/aspectj/aspectjtools/1.7.0.RC1/aspectjtools-1.7.0.RC1.pom (862 B at 1.2 KB/sec)

Downloading: http://maven.springframework.org/release/org/aspectj/aspectjtools/1.7.0.RC1/aspectjtools-1.7.0.RC1.jar

Downloading: http://maven.springframework.org/milestone/org/aspectj/aspectjtools/1.7.0.RC1/aspectjtools-1.7.0.RC1.jar

390KB

^C

망을 바꿔서 다시 시도하니 됩니다.

kenuui-Retina-MacBook-Pro:petclinic kenu$ mvn package

[INFO] Scanning for projects...

[INFO]

[INFO] ------------------------------------------------------------------------

[INFO] Building petclinic 0.1.0.BUILD-SNAPSHOT

[INFO] ------------------------------------------------------------------------

[INFO]

[INFO] --- aspectj-maven-plugin:1.2:compile (default) @ petclinic ---

Downloading: http://maven.springframework.org/milestone/org/aspectj/aspectjtools/1.7.0.RC1/aspectjtools-1.7.0.RC1.jar

이클립스를 사용해서 개발을 하는 것은 기존 텍스트 에디터를 이용해서 작업하는 것과 많은 차이를 갖고 있다. 특히 웹 애플리케이션 개발에서는 더 많은 차이가 있게 되는데, 우선 언급해 볼 것이 서비스에 구성된 디렉토리와 개발에 사용되는 디렉토리의 차이점이다.

웹 애플리케이션은 서블릿 스펙에 따라서 디렉토리가 정해진 규칙을 갖고 있다.

/WEB-INF/ 브라우저를 통해서 접근이 불가능한 웹 애플리케이션 핵심정보들을 포함하고 있는 디렉토리
/WEB-INF/classes/ 패키지에 따른 디렉토리별 class파일과 properties 파일이 위치하는 곳
/WEB-INF/lib/ 웹 애플리케이션에서 사용되는 jar 파일이 존재하는 곳
/META-INF/context.xml 톰캣에서 사용되는 manager를 통한 배포용 웹 애플리케이션 Context정보 파일
브라우저를 통해서 접근 가능한 리소스들은 그 외의 디렉토리에 놓으면 된다.
특히 브라우저의 JVM 위에서 돌아가는 애플릿 class와 관련 jar 들은 /WEB-INF/ 밖에 위치해야 한다.
이 디렉토리들을 묶어서 Context 라고 얘기한다.

서비스와 관련된 디렉토리 구조가 위와 같고, 개발용 디렉토리 구조는 java 파일이라는 특징 때문에 다음과 같이 구성한다.

/src 패키지에 따른 디렉토리별 java 파일과 properties 파일이 존재하는 곳
/WebContent/ 앞에 언급한 브라우저를 통해서 접근 가능한 리소스들. 웹 애플리케이션의 컨텍스트 루트 디렉토리에 해당.
/WebContent/WEB-INF/ 앞에 언급했던 /WEB-INF/ 디렉토리와 같은 성격
/build/classes  /src 하위 자바파일의 컴파일된 class 들이 놓이는 곳. properties 파일은 자동 복사되는 곳.


개발 디렉토리와 WAS의 서비스되는 디렉토리의 매핑 즉 자연스런 연결은 빌드 툴인 ant를 통하거나 Eclipse같은 IDE에서 자동으로 해준다.

이클립스의 경우 Servers 라는 프로젝트가 웹 프로젝트와 별개로 생성이 된다. 여기에서 설정되는 서버의 세팅은 기본적으로 설치된 세팅과 별도로 운영된다. 즉 톰캣이 설치된 디렉토리의 conf 에 있는 설정과는 별개로 Servers하위의 서버별 server.xml 의 파일에 설정된 내용으로 동작이 된다는 뜻이다.
<%= request.getRealPath("/") %> 를 통해서 확인해 보면 이클립스에서 운영하는 디렉토리가 완전히 엉뚱한 곳에 존재함을 알 수 있다. 웹 프로젝트에서 파일을 변경하면 자동으로 파일이 해당 위치로 복사된다.


관련자료:
http://tomcat.apache.org/tomcat-4.1-doc/appdev/index.html 영문
http://www.apache-korea.org/tomcat/tomcat-4.1-doc/appdev/index.html 번역문

전편에 이어서 프로젝트의 빠진 jar 파일을 보충하는 방법입니다.
Problems 뷰를 보면 에러 목록을 볼 수 있습니다.

사용자 삽입 이미지

빨간 에러 메시지를 따라가면 Jetty 관련 파일들이 필요함을 알 수 있습니다. WebContent 폴더 아래 WEB-INF/lib 폴더에 jetty 관련한 파일이 없죠. Web App Libraries 아래와 동일한 목록입니다.
사용자 삽입 이미지

http://getahead.org/dwr/download 페이지로 돌아가서 dwr-2.0.1-src.zip 파일을 받으면 있을 것 같다는 생각이 들지 않나요? 다운 받아서 압축을 풀어봅니다. 그럼 jar 디렉토리가 보입니다. jetty-6.1.1.jar 와 jetty-util-6.1.1.jar 파일 2개를 탐색기에서 복사합니다. 파일 선택하고 ctrl+C
사용자 삽입 이미지

WebContent/WEB-INF/lib 폴더를 선택하고 오른버튼의 컨텍스트 메뉴에서 Paste 로 붙여넣기 하면 됩니다. 위쪽의 Libraries에 Web App Libraries는 동일해 보여도 바로 붙여넣기가 안됩니다.
사용자 삽입 이미지

자연적으로 추가된 두 개의 jar파일이 Web App Libraries 에 보이게 됩니다.
사용자 삽입 이미지

물론 jetty 관련 에러도 모두 사라졌죠. 하나 더 있군요. JettySpringLauncher.java 에 GenericWebApplicationContext 클래스요. org.springframework.web.context.support.GenericWebApplicationContext 패키지를 보니 스프링프레임워크를 참조하는군요. 같은 방법으로 spring-2.0.jar 파일을 추가하면 됩니다.

쉽죠. ^^;
하나 더 말씀 드리자면, 탐색기에서 드래그앤드롭으로 추가가 가능합니다. 복사죠.
드래그앤드롭 추가

드래그앤드롭 추가

+ Recent posts