prev
앞에서 삽질한 프로젝트를 언제든지 불러다가 써먹을수 있게 해보자.
프로젝트에서 run.. maven build... 한다.
깔끔하게 없어졌다... 다시 빌드해본다. 그냥 명령어 따로없이 Maven Build - Install 하면된다.
다시 target 폴더가 생겼을것이다.
중요한 결과물이 나왔다. archetype/target/mywebproject-archetype-0.0.1-snapshot이 만들어진것이다.
이것을 나만의 archetype이라고들 부른다..
지금까지 무슨짓을 한것이냐면..
메이븐에서 기본으로 제공하는 기본적인 web프로젝트를 생성했다. (maven-archetype-webapp)
근데 만들어보니 프로젝트 구조가 좀 눈에 안들어오고 폴더 뎁스도 쓸데없이 있고..맘에 안들었다.
그래서 수작업으로 메이븐 폴더 구조를 바꾸고 pom파일에 디렉토리 구조를 작성했다.
테스트삼아 HelloWorld.java와 HelloWorldTest.java도 작성해봤다.
그리고 archetype:create-from-project라는 명령어로 현재 보고있는 archetype을 만들었다.
이제 저 archetype을 어떻게 써먹는담??;;
사실 한가지 빼먹은 사실이 있다. Maven Build Install을 하면 무슨작업을 하나? target폴더에 빌드 결과물을 준다?
맞는말이다. 그러나 한가지 더 있다. 이클립스에서 인식하고 있는 로컬 repository에 결과물을 배포한다.
repository 밑으로.. 프로젝트 생성할때 줬던 groupId(net.ion.minato)와 artifactId(mywebproject) 구조의 버전 0.0.1-snapshot인 파일이 로컬에 배포된것이다.
아.. 설명이 너무 길어진다. next
앞에서 삽질한 프로젝트를 언제든지 불러다가 써먹을수 있게 해보자.
프로젝트에서 run.. maven build... 한다.
maven 명령어다. create-from-project... 일단 결과부터 보자...
일단 성공은 했고.... target폴더안에 어떤 파일들이 생겨났는지 보자..
(사실 실패해서 포기상태였다...-_- 현재 이클립스에서 사용하고 있는 메이븐 버전은 3.0.4버전.. 얘 안된다;;;
그래서 2.2.1버전으로 받아서 메이븐 빌드시 2버전을 사용하도록 했다... 된다..;; 아흑 ㅠㅠ;)
아 난처하다... 에러도 나면서 엄청난 구조의 파일들이 생겨났다...(target밑에 에러는 무시한다.)
복잡해도 유심히 살펴보자.
일단 generated-sources부터 시작인데.. 그 밑에 있는 archetype폴더를 지금 빌드해서 나온 결과물이라고 보면된다.
보면 archetype폴더 밑에 src와 target이 있다. 그말은 즉 저 archetype폴더자체가 프로젝트라고 보면 되는거다. archetype바로 밑에 있는 pom 파일에서 오른버튼으로 Maven build - Clean 을 해보자.
archetype 밑에 있는 target폴더가 없어졌을것이다.
깔끔하게 없어졌다... 다시 빌드해본다. 그냥 명령어 따로없이 Maven Build - Install 하면된다.
다시 target 폴더가 생겼을것이다.
중요한 결과물이 나왔다. archetype/target/mywebproject-archetype-0.0.1-snapshot이 만들어진것이다.
이것을 나만의 archetype이라고들 부른다..
지금까지 무슨짓을 한것이냐면..
메이븐에서 기본으로 제공하는 기본적인 web프로젝트를 생성했다. (maven-archetype-webapp)
근데 만들어보니 프로젝트 구조가 좀 눈에 안들어오고 폴더 뎁스도 쓸데없이 있고..맘에 안들었다.
그래서 수작업으로 메이븐 폴더 구조를 바꾸고 pom파일에 디렉토리 구조를 작성했다.
테스트삼아 HelloWorld.java와 HelloWorldTest.java도 작성해봤다.
그리고 archetype:create-from-project라는 명령어로 현재 보고있는 archetype을 만들었다.
이제 저 archetype을 어떻게 써먹는담??;;
사실 한가지 빼먹은 사실이 있다. Maven Build Install을 하면 무슨작업을 하나? target폴더에 빌드 결과물을 준다?
맞는말이다. 그러나 한가지 더 있다. 이클립스에서 인식하고 있는 로컬 repository에 결과물을 배포한다.
repository 밑으로.. 프로젝트 생성할때 줬던 groupId(net.ion.minato)와 artifactId(mywebproject) 구조의 버전 0.0.1-snapshot인 파일이 로컬에 배포된것이다.
아.. 설명이 너무 길어진다. next
'Maven' 카테고리의 다른 글
maven을 익숙한 프로젝트로 만들어보자.. (후기) (0) | 2012.02.18 |
---|---|
maven을 익숙한 프로젝트로 만들어보자.. (4) (0) | 2012.02.12 |
maven을 익숙한 프로젝트로 만들어보자.. (2) (0) | 2012.02.12 |
maven을 익숙한 프로젝트로 만들어보자.. (1) (0) | 2012.02.12 |
mac os에서 ${basedir} 안읽히는 문제... (0) | 2012.02.12 |