두 손끝의 창조자

모듈간 의존성 참조 문제 본문

프로그래밍언어/Java

모듈간 의존성 참조 문제

codinglog 2023. 11. 14. 13:14

모듈 A, B, C가 있을 때 B는 C모듈을 의존해서 구현하고 A는 B모듈을 사용한다.

A가 B모듈 중 C에 존재하는 예외 클래스를 상속받아 재구현한 예외를 사용하려고 하면 참조 오류가 발생한다.
throw 로 예외를 올렸을 때 오류가 발생하는데 일반 클래스 생성 및 사용은 문제가 없다.

그 이유를 모르겠어서 기록해놓는다.

module c

code

package c;

public class BaseException extends RuntimeException{
}

module b

gradle

implementation project(':module-c')

code

package b;

import c.BaseException;

public class SubBaseException extends BaseException {
}

module a

gradle

implementation project(':module-b')

code

package a;

import b.SubBaseException;

public class Main {
    public static void main(String[] args) {
        throw new SubBaseException();
    }
}

result

throw new SubBaseException();
        ^
  class file for c.BaseException not found

but

SubBaseException f = new SubBaseException();

Compile time OK. But throw f still exception occur.

Why?

반응형
Comments