Java 소스 파일을 컴파일하는 동안 사용자 정의 클래스 읽기/해석 /로드 논리를 지정하기 위해 Eclipse 컴파일러에 연결하는 방법이 있습니까? 정확한 용어는 무엇인지 모르겠지만, 본질적으로 런타임에 발생하는 "클래스 로딩"에 해당하는 컴파일 타임에 해당합니다. 그것은가로 지정 -Eclipse에서 사용자 정의 컴파일시 클래스 로딩?
bar.Bar
: 소스 파일foo/Foo.java
을 컴파일하는 동안package foo; import bar.Bar; public final class Foo { // getQux() returns type: qux.Qux private final Bar bar = baz.Baz.getQux().getBar(); [...] }
이 컴파일러는 3 개 클래스가 읽도록 요청해야합니다 : 예를 들어
, 나는 자바 소스가 있다고 가정 해 수입.baz.Baz
- 정규화 된 형식 (... = baz.Baz.getQux()...
)으로 사용됩니다.qux.Qux
- 이는 "간접적"종속성입니다 (baz.Baz.getQux()
에 대한 호출에 의해 반환되며 이는getBar()
메서드 호출을 통해bar.Bar
에 액세스하는 데 사용됩니다).
저는 이러한 "클래스 요청"을 가로 채어 문제의 클래스를 가져올 수 있도록 사용자 지정 논리를 제공 할 수 있기를 바랍니다 (아마도 데이터베이스에 있으며 아마도 일부 서버에서 사용했습니다. 어딘가 등).
또한 사용자가 명시 적으로 열 때까지 Eclipse 프로젝트에서 소스 파일을 컴파일하려고 시도하지 않았 으면 좋겠다. 따라서 위 예제에서 사용자가 실제로 소스 파일 foo/Foo.java
을 열어야 만 3 클래스 요청 (bar.Bar
, baz.Baz
23, qux.Qux
)이 작성되지 않습니다. 이상적으로 프로젝트의 소스 파일 목록은 파일 시스템의 실제 파일 일 필요는 없습니다 (아마도 너무 데이터베이스에 살고있는 등). 사용자가 소스 파일을 열거 나로드 할 때만 컴파일이 시도됩니다.
가능하다면, 여기에는 몇 가지 단점이 있습니다. 예를 들어 소스 파일 foo/Foo.java
을 편집하여 "package private"클래스를 만들면 프로젝트의 "전체"컴파일이 완료 될 때까지 foo.Foo
에 종속 된 클래스를 자동으로 중단합니다. 당분간, 그것은 내 목적을 위해서 좋다. (나중에 이것을 해결하기 위해 할 수있는 일이있다.)
아이디어가 있습니까?
감사합니다.
답장을 보내 주셔서 감사합니다. 나는 많은 것으로 의심됩니다. ( – alopecoid