모든 클래스는? 그게 무슨 뜻 이니 ? 어쩌면 당신은/classes/** (클래스의 기본 출력 위치입니다) 또는 여러 디렉토리 트리 위치 목록을 의미할까요?
Mojo가 수행하는 작업과 바인딩 할 단계 및 목표를 더 잘 설명 할 수 있습니까?
아마도 Maven의 빌드주기를 프로젝트에 잘못 적용하는 방법을 생각하고있을 것입니다. 당신의 플러그인이하는 일을 더 잘 설명해 주시겠습니까? 아마도 "패키징"작업일까요?
정확하게 이해한다면 플러그인의 실행으로 인해 대상/클래스/**에 대한 추가 클래스 경로 항목을 가져오고 싶습니까? 그래서 Maven-Plugin 내부에서 동적 인 동작을 변경하기 위해 프로젝트 자체에서 코드와 리소스를로드 할 수 있습니까?
기본 방법은 <dependency>
이지만 물론 고정 단위가 필요합니다.
이 동작을 허용하는 다른 플러그인 (예 : maven-antrun-plugin)은 모조 내부의 클래스 경로를 변경하고 pom.xml의 <configuration>
섹션에서 무언가를 사용하여이를 수행합니다. 사용하고있는 플러그인이 Maven 또는 작성한 플러그인인지 확실하지 않습니다.
.
유효한 사용 케이스 인 유효성 및 패키징. 그러나 나는 왜 "classpath"에서 질문을 하는가? 나는 당신이 프로세스 - 클래스 단계에서 구속력을 가지고 있다고 생각할 것이다.
즉, 클래스 경로는 실행 시간에 코드/리소스를 제공하기위한 것입니다. 그러나 귀하의 경우에는 클래스 경로 요구 사항이 아닌 입력 디렉토리가 있습니다.
Mojo에서 입력 디렉토리 * / .class에 디렉토리 스캐너를 설치 한 다음 각 파일을 열어 (일부 라이브러리를 사용하여) 주석 파일을로드하지 않고 검사 할 수 있습니다.
신뢰할 수없는 입력 데이터와 플러그인 코드 자체의 일관된 동작을 구분하는 좋은 방법이기도합니다. 프로젝트가 플러그인 자체의 구현에 사용 된 것과 동일한 패키지 및/또는 클래스를 구현하기로 결정하면 어떻게됩니까?
업데이트 : 실제로 Mojo에서 JVM으로 체크인하는 클래스를로드하는 경우 적어도 자신의 ClassLoader를 구현하여 구현하십시오. 이것은 반드시 해결해야 할 간단한 문제는 아닙니다. 이 ClassLoader는 입력 디렉토리의 구성에서 지정된 항목을 찾습니다.
내가 더 잘 설명하는 내 질문에 업데이트되었습니다. – Cemo