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.)