[프로젝트 셋업] 모듈 의존성 설정

김대니·2023년 1월 16일
0

앞서 생성한 여러 모듈을 함께 사용해보도록 하겠습니다.

(언어는 Java 로 작성합니다.)

준비물 소개

필요한 클래스인터페이스는 다음과 같습니다.

  • SampleController.java - API 를 포함하고 있는 컨트롤러 클래스
  • SampleUseCase.java - UseCase 정보를 담고 있는 인터페이스
  • SampleService.java - UseCase 를 구현하는 구현체 클래스
- root
	- apps
		- app-api
			- src/main/java
				- sample/project/kdohyeon
					- sample
						- SampleController.java // Controller 클래스
	- libs
		- application
			- src/main/java
				- sample/project/kdohyeon
                    - port/in
                        - sample
                            - SampleUseCase.java // 유즈케이스 인터페이스
                    - service
                        - sample
                            - SampleService.java // Service 클래스

SampleController -> SampleUseCase 호출

아래처럼 별다른 설정 없이 SampleController 에서 SampleUseCase 를 사용하려고 하면 모듈이 다르기 때문에 사용을 할 수가 없습니다.

에러 메시지를 확인해보면 SampleUseCase 를 찾을 수 없고, 아래 안내 문구에서는 Add dependency on module... 이라고 나옵니다.

apps:app-api 모듈에 위치한 클래스가 libs:application 에 있는 클래스로 접근을 하려면 의존성을 추가해주어야 합니다.

의존성 추가

의존성은 build.gradle 에서 관리합니다.

그런데 build.gradle 은 최상단 root 디렉토리에도 존재하고 또 각 모듈마다 포함되어 있는데 어느 build.gradle 에 추가해야 할까요?

apps:app-api 모듈에 위치한 build.gradlelibs:application 에 대한 의존성을 추가해주면 됩니다.

그 이유는 apps:app-api 모듈에서 libs:application 모듈을 의존할 것이기 떄문입니다.

따라서 apps:app-api 모듈의 build.gradle 에 아래 코드를 추가합니다.

implementation(project(":libs:application"))

코드를 추가하고 gradle sync 를 합니다.

이제는 libs:application 에 위치한 SampleUseCase.java 인터페이스를 호출할 수 있습니다.

profile
?=!, 물음표를 느낌표로

0개의 댓글