OS X(10.11)에서 메이븐(Maven)사용하기
들어가며
- OS X 10.10(요세미티)에서 Maven을 설치하고 기본적인 사용방법을 알아보자.
- 간단한 샘플 프로젝트를 몇개 만들어 보자. 여기 있는 샘플들은 http://books.sonatype.com/mvnex-book/reference/index.html에 있는 것임. 전체코드는 링크를 참조하고 여기에 실린 스니핏(snippet) 코드들은 조금 수정된 내용이 있음.
- What is Apache Maven: 정의는 홈페이지에 잘 나와있음.
- 꼭 필요한 내용만 있으므로 한 줄도 빼지말고 읽어야 한다.
설치
-
2015년 9월 maven현재 버전은 3.3.3
- JDK 1.7이상이 필요하다. 아래처럼 java버전 확인해 본다.
$ java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
JAVA_HOME path도 설정 확인 한다. : 아래 5번 참조.
-
Maven 다운로드 하기: http://maven.apache.org/download.cgi
- 다운 받아서 압축 풀고 Users/{user name} 폴더에 복사한다. 어디에 복사하던 PATH지정할때 위치를 지정해 주면 된다.
$ ls -Gl total 0 drwxr-xr-x 5 onlydel staff 170 Sep 20 01:26 Applications drwxr-xr-x@ 4 onlydel staff 136 Sep 23 09:13 Applications (Parallels) drwxr-xr-x 10 onlydel staff 340 Sep 22 20:40 Codes drwx------+ 5 onlydel staff 170 Sep 22 15:11 Desktop drwx------+ 19 onlydel staff 646 Sep 21 13:29 Documents drwx------+ 27 onlydel staff 918 Sep 24 02:00 Downloads drwx------@ 19 onlydel staff 646 Sep 22 15:10 Google Drive drwx------@ 51 onlydel staff 1734 Sep 20 22:27 Library drwx------+ 3 onlydel staff 102 Sep 19 08:26 Movies drwx------+ 10 onlydel staff 340 Sep 24 09:42 Music drwx------+ 6 onlydel staff 204 Sep 22 23:45 Pictures drwxr-xr-x+ 5 onlydel staff 170 Sep 19 08:26 Public drwxr-xr-x 3 onlydel staff 102 Sep 23 16:33 Services drwxr-xr-x 11 onlydel staff 374 Sep 22 20:19 apache-maven-3.3.3 drwxr-xr-x 3 onlydel staff 102 Sep 22 10:13 eclipse
- 프로파일에 PATH를 추가한다. OS X 10.10 에서는 ~/.bash_profile 파일에 추가해 준다. M2_HOME Alias를 만들고 위에서 복사한 경로를 지정해 준다음 /bin폴더를 PATH에 추가해 준다.
$ nano ~/.bash_profile [[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell se$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home export M2_HOME=/Users/onlydel/apache-maven-3.3.3 export PATH=$PATH:$M2_HOME/bin # 콘솔에서 mvn 실행할때 INFO, WARNING, ERROR 를 색깔로 구분하기 위한 스크립트실행 source $M2_HOME/colorize-maven.sh
위 문서에서 colorize-maven.sh 스크립트 소스코드는 https://gist.github.com/mike-ensor/1881211에 있고, 한 가지 주의할 점은 코드의 78라인에서
'xterm-color'
부분은 본인이 사용하는 터미널프로그램의 설정에서 확인해야 한다. 혹시ansi
로 되어 있다면xterm-color
로 바꿔주고xterm-256color
로 되어 있다면 코드를'xterm-256color'
로 바꿔주면 된다.
요세미티의Terminal
앱이나iTerm2
앱의 경우 기본값이xterm-256color
로 되어 있다. - maven 설치가 잘 되었는지 확인 한다.
$ mvn -v Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T20:57:37+09:00) Maven home: /Users/onlydel/apache-maven-3.3.3 Java version: 1.8.0_60, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "10.10.5", arch: "x86_64", family: "mac"
command not found 오류가 나면 M2_HOME PATH를 다시 확인해 본다.
- maven을 삭제하려면 설치한 maven폴더를 삭제하고 profile에 입력한 경로정보를 지우면 된다. ~/.m2폴더는 maven의 local repository폴더 이므로 이것도 같이 삭제하면 끝.
프로젝트
Simple Project 1
소스코드 다운로드: http://www.sonatype.com/books/mvnex-book/mvnex-examples.zip
프로젝트 생성
새로운 maven프로젝트를 생성할때 Archetype plugin을 사용할 수 있다.
mvn archetype:generate
를 실행하면 선택할 수 있는 archetype이 나열된다.
이 문서를 작성하는 시점에 1400개 가까이 되는 archetype이 표시되는데 이 목록은 maven이 release될때 마다 변경될 수 있으며, 번호도 바뀔수 있다고 하니 번호를 직접 입력하여 프로젝트를 생성할 때에는 주의 해야 한다.
$ mvn archetype:generate -DgroupId=com.steam.mavenpack -DartifactId=simple -Dpackage=com.steam.mavenpack -Dversion=1.0-SNAPSHOT
위 명령을 Command line에 입력하면 아래와 같이 mvn이 실행 된다.
[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-archetype-plugin:2.4:generate (default-cli) > generate-sources @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.4:generate (default-cli) < generate-sources @ standalone-pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.4:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Interactive mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) Choose archetype: 1: remote -> am.ik.archetype:maven-reactjs-blank-archetype (Blank Project for React.js) 2: remote -> am.ik.archetype:msgpack-rpc-jersey-blank-archetype (Blank Project for Spring Boot + Jersey) 3: remote -> ... ... 637: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.) ... 1394: remote -> us.fatehi:schemacrawler-archetype-plugin-command (-) 1395: remote -> us.fatehi:schemacrawler-archetype-plugin-dbconnector (-) 1396: remote -> us.fatehi:schemacrawler-archetype-plugin-lint (-) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 637: Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 1: 1.0-alpha-1 2: 1.0-alpha-2 3: 1.0-alpha-3 4: 1.0-alpha-4 5: 1.0 6: 1.1 Choose a number: 6: [INFO] Using property: groupId = com.steam.mavenpack [INFO] Using property: artifactId = simple [INFO] Using property: version = 1.0-SNAPSHOT [INFO] Using property: package = com.steam.mavenpack Confirm properties configuration: groupId: com.steam.mavenpack artifactId: simple version: 1.0-SNAPSHOT package: com.steam.mavenpack Y: : [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: basedir, Value: /Users/onlydel/Codes/Eclipse/MavenProjects [INFO] Parameter: package, Value: com.steam.mavenpack [INFO] Parameter: groupId, Value: com.steam.mavenpack [INFO] Parameter: artifactId, Value: simple [INFO] Parameter: packageName, Value: com.steam.mavenpack [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: /Users/onlydel/Codes/Eclipse/MavenProjects/simple [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 48.159 s [INFO] Finished at: 2015-09-24T20:34:20+09:00 [INFO] Final Memory: 14M/265M [INFO] ------------------------------------------------------------------------
이번 프로젝트 생성에 사용할 archetype은 기본값인 org.apache.maven.archetypes:maven-archetype-quickstart 이다.
번호선택 화면에서 enter
키를 치면 기본값인 637이 선택되고 버전을 선택하는 화면이 나온다. 버전도 기본값으로 6
을 선택하고 enter
키 ,
이제 입력한 속성값들이 맞는지 확인하는 화면이 나온다. 일단 enter
키,
BUILD SUCCESS
가 나오면 프로젝트가 제대로 생성된것임.
$ tree . └── simple ├── pom.xml └── src ├── main │ └── java │ └── com │ └── steam │ └── mavenpack │ └── App.java └── test └── java └── com └── steam └── mavenpack └── AppTest.java 12 directories, 3 files
프로젝트 생성이 정상적으로 완료되면 simple
이라는 이름의 하위 폴더가 생기고 위와 같은 구조의 폴더들이 생성된다.
위와 같은 tree app은
$ brew install tree
로 설치할 수 있다.
참조
ASP.NET
- OS X(10.11)에 ASP.NET Application
- OS X(10.10)에 ASP.NET 5 설치하기
- MVC Web Application에서 재사용 가능한 Authentication라이브러리 만들기
- 맥에서 ASP.NET vNext 애플리케이션 개발하기
- ASP.NET 5소개
- ASP.NET 5와 MVC 6에서 바뀌게 되는 기능 Top 10
- ASP.NET 5 스케폴딩(Scaffolding)
- MVC Controller와 ApiController의 차이점
- ASP.NET Accounts Management
- MVC를 이용해 RealGrid에 데이터를 표현하기
EF
Visual Studio
- Visual Studio Code v0.3.0
- 무서운 EF
- 해결 방법을 찾을 수 없습니다.
- GitHub Extension for Visual Studio
- Visual Studio Code for Mac
- 패러렐즈 Visual Studio Text Editor 스크롤을 부드럽게 하는 방법
Another Code
- BitBucket!! 너는 또 뭐야?
- Git! 너 뭐야?
- 슬랙앱 만들기
- 품질의 기본
- 대화의 수준
- javascript tutorial
- html tutorial
- OS X에서 Paralles Windows 10 VM의 localhost 사이트에 접속하는 방법
- OS X(10.11)에서 MongoDB
- OS X(10.11)에서 SVN(Subversion)
- OS X(10.11)에서 아파치웹서버 구동하기 (Virtual Hosting 구현)
- OS X(10.11)에서 메이븐(Maven)사용하기
- Jasmine을 이용한 Javascript 테스트
- Identicon
- 회사의 슬픔
- 지킬에서 사이드 메뉴 필터링 하기
- ASP.NET MVC vs WEB API
- 티스토리에서 구문 하이라이팅 기능 구현하기
Javascript
- react를 위한 webpack정리 (II) - 작성중
- react를 위한 webpack정리 (I)
- javascript에서 객체 정의
- Javascripting
- aws-ec2-amazon linux-nodejs
- Protractor
- AngulaJS 연습
티스토리(1) tistory(1) syntax highlighting(1) Visual Studio(3) ASP.NET(4) EF(3) RealGrid(2) Jekyll(2) GitHub(3) SqlServer(1) SqlServer 2014(1) MVC(2) ASP.NET 5(7) Identity(2) Account(1) Controller(1) ApiController(1) 스케폴딩(2) Schaffolding(2) MVC 6(1) 페러렐즈(2) Parallels(1) Liquid(1) Authentication(1) Entity Framework(2) Visual Studio Code(2) VS(2) VisualStudio(2) Visual Studio 2015(2) VS 2015(2) Extension(1) 잡설(3) Update-Database(1) Entension(1) 일을하지말아야지(1) osx(2) DNX(2) Iendticon(1) Jasmine(1) AngularJS(2) protractor(1) maven(1) java(1) OSX(5) yosemite(2) 메이븐(1) 요세미티(1) 서브라임(1) 아파치(2) apache(1) webserver(1) 웹서버(1) virtualhost(1) svn(1) subversion(1) 몽고디비(1) mongodb(2) localhost(1) 호스팅(1) hosting(1) VSCode(1) html(1) JavaScript(1) nodejs(2) aws(2) ec2(2) git(4) javascript(5) object(1) webpack(2) reactjs(2) react(2) browserify(2) 웹팩(3) 리액트(3) slack(1) api(1) slack app(1) 슬랙 앱(1) 깃(2) 깃허브(1) github(1) 비트버킷(1) BitBucket(1)