Maven을 통한 다중 모듈 구성(Jersey RESTful)
결론
결론부터.
지난번 보도에서 다음과 같은 형식을 상상했다.jersey_sample
|- pom.xml
|- src/main/java/package/xxx/sampleapp
|- serverapi
| |- pom.xml
| |- src/main/java/package/yyy/server
|- repository
|- pom.xml
|- src/main/java/package/zzz/repository
우선, 다중 모듈의parent는 소스 코드가 있을 수 없기 때문에 모두 하위 모듈이어야 합니다.
그리고 나는 이렇게 하면 안 된다고 생각한다jersey_sample
|- pom.xml
|- sampleapp
| |- pom.xml
| |- src/main/webapp (※javaコードを持たない)
|- serverapi
| |- pom.xml
| |- src/main/java/package/yyy/server (※webappフォルダを持たない)
|- repository
|- pom.xml
|- src/main/java/package/zzz/repository
WebApp만 있는 모듈을 만들 수 있을까 해서 서버api 모듈을 참조하여 API를 호출할 수 있을까 생각했는데 아무리 해도 잘 안 됐어요.
Eclipse라면 학급 경로를 추가하는 방법이 있을 것 같은데 IntelliJ는 어떻게 할지 몰라요...그리고 IDE에서 완성되더라도 배포는 어떻게 됩니까?
그래서 결과는 이렇게 됐다.jersey_sample
|- pom.xml
|- serverapi
| |- pom.xml
| |- src/main/
| |- java/package/yyy/server
| |- webapp
|- repository
|- pom.xml
|- src/main/java/package/zzz/repository
API 레이어webapp
의 형식을 포기했습니다.응, 나는 이렇게 하는 것이 사실상 매우 필요한 것임을 알고 있어서 좋다(땀)
그러나 이 일대의 버전은 업그레이드가 빨라 보통 불평을 해도 낡은 정보들로 원하는 정보를 찾기 어렵다.검색 기술을 연마하지 않으면(땀)
다중 모듈 구성
1. 부모님pom.xml 제작
우선 현재 프로젝트 노선 중pom.xml
을 부모로 직접 사용한다.
의존 관계는 원래 각 모듈에 필요한 것을 넣어야 하기 때문에 (repository층은 servlet 같은 것을 필요로 하지 않기 때문에) 지금 움직이지 않으면 무섭다(웃음). 그래서 잠시 이렇게 두었다.<package>
를 pom
로 변경하면 됩니다.
pom.xml <groupId>com.example</groupId>
<artifactId>simple-webapp</artifactId>
<packaging>pom</packaging>
<version>1.1-SNAPSHOT</version>
<name>simple-webapp</name>
버전도 바뀌었어요.
2. 서브모듈 만들기
우선 빈 서브 모듈을 만듭니다.
jersey_sample
|- pom.xml
|- src/main/java/package/xxx/sampleapp
|- serverapi
| |- pom.xml
| |- src/main/java/package/yyy/server
|- repository
|- pom.xml
|- src/main/java/package/zzz/repository
jersey_sample
|- pom.xml
|- sampleapp
| |- pom.xml
| |- src/main/webapp (※javaコードを持たない)
|- serverapi
| |- pom.xml
| |- src/main/java/package/yyy/server (※webappフォルダを持たない)
|- repository
|- pom.xml
|- src/main/java/package/zzz/repository
jersey_sample
|- pom.xml
|- serverapi
| |- pom.xml
| |- src/main/
| |- java/package/yyy/server
| |- webapp
|- repository
|- pom.xml
|- src/main/java/package/zzz/repository
1. 부모님pom.xml 제작
우선 현재 프로젝트 노선 중
pom.xml
을 부모로 직접 사용한다.의존 관계는 원래 각 모듈에 필요한 것을 넣어야 하기 때문에 (repository층은 servlet 같은 것을 필요로 하지 않기 때문에) 지금 움직이지 않으면 무섭다(웃음). 그래서 잠시 이렇게 두었다.
<package>
를 pom
로 변경하면 됩니다.pom.xml
<groupId>com.example</groupId>
<artifactId>simple-webapp</artifactId>
<packaging>pom</packaging>
<version>1.1-SNAPSHOT</version>
<name>simple-webapp</name>
버전도 바뀌었어요.2. 서브모듈 만들기
우선 빈 서브 모듈을 만듭니다.
serverapi
(이름) 후 [OK] 클릭repository
모듈을 추가합니다.끝나고 나면 이런 구성일 거예요.(하위 폴더가 닫혔음)
3. Repository 모듈의 제작
다음 클래스 원본 파일을 빈
repository
모듈로 이동합니다.(1) pom.xml 편집
<packaging>
는jar
입니다.pom.xml
<artifactId>repository</artifactId>
<packaging>jar</packaging>
(2) DnD를 통해 Employee 클래스를 웨어하우스 모듈로 이동
src/main/java
폴더목적지를 묻는 말에 "To package"를 선택하여 원하는 포장 이름을 전체 경로로 기술합니다.
com.example
에서 com.example.jerseysimple.repository.models
로 변경되었다충돌 경고를 보냈지만 당분간 그대로
(2) 모듈로 이동 후
모든 이동이 완료되면 이런 모양입니다.
또 이 모듈의 일부 반도 테스트를 했다.이후 부모 레벨
mvn test
에서 하위 모듈의 테스트가 모두 실행되었는지 확인하고 싶습니다.EmployeeRepository
본질적인 것이 아니기 때문에 쓰지 않지만, 예외 학과의 반은 간단한getMessage
테스트를 할 수 있기 때문에 준비했다.이 때, 열기
EmployeeRepository.java
는 컴파일 오류를 경고합니다.이거 내가 고칠게.
(3) 모듈을 통한 구축
Employee
에 커서를 대고 조금만 기다리면 알림 import의 팝업이 나타나므로 표시되는 단축키를 누르십시오.(Mac는 opon+오락)repository
] 선택또 건축물과 테스트의 확인도 단말기 등에서
repository
모듈로 이동mvn install
할 수 있다.4.serverapi 모듈 만들기
(1) serverapi/pom.xml 편집
-
<packaging>
- war
- reipository
모듈에 대한 종속성 추가serverapi/pom.xml
<artifactId>serverapi</artifactId>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>repository</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
(2) 원본 파일 이동
Repository 모듈과 같은 절차로 다음 종류를 이동하여 인용을 수정합니다.
com.example.jerseysimple.api
가방com.example.jerseysimple.api
가방com.example.jerseysimple.api.handlers
가방com.example.jerseysimple.api
가방(3) 모바일 웹 디렉터리
serverapi
모듈의 src/main
아래로 이동합니다.(4) 모듈로 이동 후
모든 이동이 완료되면 이런 모양입니다.
모듈을 구축하고 테스트를 실행하십시오.
※ mvn 명령은 현재 의존 관계를 해결할 수 없고, 실행할 수 없습니다.IntelliJ부터 시작하십시오.부모님 모듈
pom
이 아직 제작되지 않았기 때문일 거예요.5. 노선 지우기
(1) 폴더 삭제
루트에서 다양한 폴더를 삭제합니다.
src
resources
(2) 청결
프로젝트 경로에서 실행
mvn clean
.6. 실행
(1) 설계 객체 수정
Tomcat에서 시작하려면 [Edit Configuration]을 변경해야 합니다.
serverapi:war exploded
를 선택하고 [OK]를 클릭합니다.simple-webapp:war exploded
를 클릭하고 아래의 [-]를 클릭합니다.(2) 실행
실행 버튼을 클릭합니다.
브라우저에서 각 API에 액세스하십시오.curl 명령과 Postman이 실행되기 시작했을 때 war가 바뀌었고 URL도 바뀌었으니 주의하세요.
그리고 mvn 명령도 루트부터 구축하고 테스트가 모두 실행되는지 확인합니다.
아래 명령으로 보고서를 제출하면 각 모듈의 보고서가 한데 묶여 확인이 쉽습니다.
※ 전제는 여기. 기사에 삽입된 플러그인입니다.
$ mvn clean \
test -Dmaven.test.failure.ignore=true \
site -DgenerateReports=false \
-Daggregate=true \
surefire-report:report
프로젝트 경로target/site
에서 내보냅니다.감상
API를 만드는 것도 즐거워졌다.그래도 Gradle을 쓰고 싶고 Kotlin을 쓰고 싶어요.
이어 스프링 프레임워크(not Boot)+언승욱 구성에 도전한다.
Spring Framework만으로도 RESTful API를 제작할 수 있기 때문에 특별히 Jersey와 협업해도 될까요?이런 데도 있지만 해보고 싶어서 했어요(웃음)
여기까지의 소스는 이미 아래에 올렸어요.
참고 자료
https://qiita.com/rubytomato@github/items/118817023845b4284553
Reference
이 문제에 관하여(Maven을 통한 다중 모듈 구성(Jersey RESTful)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kasa_le/items/db0d84e3e868ff14bc2b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)