ProgramingTip

Maven을 사용하여 JAR의 "META-INF / services"폴더에 구성 파일을 포함하는 방법

bestdevel 2020. 11. 17. 20:38
반응형

Maven을 사용하여 JAR의 "META-INF / services"폴더에 구성 파일을 포함하는 방법


Maven을 사용하여 빌드 된 Eclipse에서 Java 프로젝트를 작업 중입니다. 이전 프로젝트의 일부 재활용 코드를 사용하고 있고 중요한 클래스 중 하나는 특정 이름을 가진 JAR의 "META-INF / services"폴더에서 파일을 다음이 파일의 텍스트를 구문 분석합니다. 이 특정 예제에서는 Java 인터페이스 이름을 가진 파일을 다음 파일 내부에서 구현의 클래스 이름을 가져옵니다.

그래서 기본적으로 내가하려는 목적 JAR의 "META-INF / services"폴더에 파일 이름 (X)과 한 줄의 텍스트 (Y)가있는 파일을 포함하는 것 입니다. POM 파일에 속성을 지정하여 Maven을 사용하여 수행해야 아마도 생각하지만 내 연구는 아무것도 밝혀지지 않습니다. META 파일을 하드 코딩하거나 수동으로 입력하면 안됩니다.

미리 감사드립니다.


위치 로 새 소스 폴더src/main/resources만든 다음 META-INF/services거기에 폴더 를 만들고 FQCN 파일에 만들었습니다. 그러면 자동으로 jar 파일에 복사됩니다. 따라서 다음을 사용합니다.

Project
| src
| | main
|   | java
|     | [your source code]
|   | resources
|     | META-INF
|       | services
|         | [your service files]

Gradle은 기본 소스 세트가있는 점은 주목할 가치가 있습니다.


기본적으로 Maven은 다음 위치에서 리소스를 찾습니다.

src/main/resources

그래서 그것을 넣어

src/main/resources/META-INF/services

또는 프로젝트가 표준 디렉토리 구조를 사용 하지 않는 경우 (단순히 대체 리소스 또는 디렉토리를 사용하려는 경우) POM에 파일 리소스 디렉토리를 수동으로 지정할 수 있습니다 .

를 들어 예 프로젝트 디렉토리의 루트에있는 META-INF/services라는 폴더에있는 경우 resources다음과 같이 지정할 수 있습니다.

<project>
...
  <build>
    ...
    <resources>
      <resource>
        <directory>resources</directory>
      </resource>
    </resources>
    ...
  </build>
  ...
</project>

사용하여 여러이를 <resource>요소 를 추가하여 여러 디렉토리를 지정할 수 있습니다 .

참고 URL : https://stackoverflow.com/questions/17531625/how-to-include-a-config-file-in-the-meta-inf-services-folder-of-a-jar-using-ma

반응형