Presentation is loading. Please wait.

Presentation is loading. Please wait.

Maven 프로젝트 생성 및 JAX-RS (Java API for RESTful Services) 코딩

Similar presentations


Presentation on theme: "Maven 프로젝트 생성 및 JAX-RS (Java API for RESTful Services) 코딩"— Presentation transcript:

1 Maven 프로젝트 생성 및 JAX-RS (Java API for RESTful Services) 코딩
Sep. 2015 Youn-Hee Han

2 Maven 101 Maven Apache Software Foundation에서 개발되고 있는 소프트웨어 프로젝트 관리툴
프로젝트 빌드, 테스트, 토큐멘테이션, 성과물의 배치등, 프로젝트의 라이프사이클 전체를 관리 Project Object Model (POM) 프로젝트에 관련한 여러가지 정보를 pom.xml에 집약하여, 이곳에 기재된 정보를 기반으로 전체 프로젝트를 관리

3 Maven 101 Maven Archetype Maven 프로젝트 템플릿 마련되어 있는 archetype 목록

4 Maven Plugins Maven Archetype Plugin
Maven Archetype 템플릿으로 부터 Maven 프로젝트를 생성하기 위한 도구 현재 3가지의 plugin goal (타겟 액션)을 지니고 있음 archetype:generate Maven 프로젝트를 생성할 때 가장 일반적으로 많이 사용하는 archetype plugin goal Default Archetype: maven-archetype-quickstart

5 Maven Plugins Maven Exec Plugin Maven 프로젝트로 만든 Java 프로그램을 실행하기 위한 도구
현재 2가지의 plugin goal (타겟 액션)을 지니고 있음 exec:java

6 Maven 프로젝트 생성 전형적인 Maven 프로젝트 생성
[note] git/github와 연동시키려면 [내문서 폴더]/git 폴더 아래에서 위 명령어 실행  [내문서 폴더]/git/myapp 폴더 생성됨 groupId 프로젝트를 만드는 그룹, 조직, 회사 등을 나타내는 유일한 이름, 보통 자바 패키지처럼 URI를 거꾸로 써서 나타낸다. artifactId 아티팩트(artifact). 즉, 프로젝트를 나타내는 유일한 이름, group 내 다른 아티팩트와 이름이 같아서는 안된다. package 프로젝트의 최상위 패키지 version 프로젝트의 현재 버전 mvn archetype:generate -DgroupId=koreatech.link -DartifactId=myapp -Dpackage=link.rest -Dversion=1.0

7 Maven 프로젝트 생성 전형적인 Maven 프로젝트 빌드 및 패키징 Maven이 생성한 모든 산출물 삭제 (초기화) 컴파일
mvn clean 컴파일 mvn compile 테스트 mvn test 실행 exec 플러그인 사용 mvn exec:java -Dexec.mainClass="link.rest.App"

8 Maven 프로젝트 생성 전형적인 Maven 프로젝트 빌드 및 패키징 패키징을 위한 pom.xml 수정 패키징 및 패키징 활용
mvn package java -jar ./target/myapp-1.0.jar <project …> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <configuration> <archive> <manifest> <mainClass>link.rest.App</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> </project>

9 JAX-RS 101 JAX-RS (https://jax-rs-spec.java.net) JAX-RS Tutorial
Java API for RESTful Services JSR (Java Specification Requests) 339 JAX-RS Specification JAX-RS Tutorial Popular JAX-RS implementation Jersey RESTEasy Spring 4.0

10 Jersey 101 Jersey (https://jersey.java.net)
A Java library to simplify development of RESTful Web services and their clients in Java a standard and portable JAX-RS API has been designed Jersey provides it’s own API that extend the JAX-RS toolkit with additional features and utilities to further simplify RESTful service and client development.

11 JAX-RS 서비스 만들기 JAX-RS Maven 프로젝트 생성
intellij 에서 프로젝트화 하여 소스 살펴 보기 mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 -DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false -DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example -DarchetypeVersion=2.21

12 JAX-RS 서비스 만들기 Maven이 생성한 모든 산출물 삭제 (초기화) 컴파일 초기화 및 테스트 mvn clean
mvn compile 초기화 및 테스트 mvn clean test

13 JAX-RS 서비스 만들기 Main 수행 새 콘솔창에서 curl 명령어를 사용한 Client 수행
exec 플러그인 사용 mvn exec:java -Dexec.mainClass="com.example.Main" 새 콘솔창에서 curl 명령어를 사용한 Client 수행 curl curl -i curl -v 브라우저를 사용한 Client 수행 웹 서비스 설명:

14 JAX-RS 서비스 만들기 IntelliJ에서 수행
Project structures  source folders & test source filders Run/Debug Configuration

15 JAX-RS 서비스 Client 만들기 새로운 Maven 프로젝트 만들기
pom.xml 에 jersey-client 의존성 추가하기 [note] intellij에서 아래 화면이 나오면 “Enable Auto-Import” 클릭 mvn archetype:generate -DgroupId=koreatech.link -DartifactId=rest_client -Dpackage=link.rest -Dversion=1.0 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>2.21</version> </dependencies> [참고]

16 JAX-RS 서비스 Client 만들기 Main 메소드 구현 Run/Debug Configuration
package link.rest; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; public class App { public static void main(String[] args) { Client client = ClientBuilder.newClient(); WebTarget target = client.target(" Response response = target.request(MediaType.TEXT_PLAIN).get(); System.out.println("Output from Server .... \n"); System.out.println(response.readEntity(String.class)); }


Download ppt "Maven 프로젝트 생성 및 JAX-RS (Java API for RESTful Services) 코딩"

Similar presentations


Ads by Google