EclipseでJavaプロジェクトに取り組んでいます。これはMavenを使用して構築されています。古いプロジェクトのリサイクルコードを使用しており、これらのクラスの1つは、JARの「META-INF/services」フォルダー内で特定の名前のファイルを探し、このファイルのテキストを解析します。この特定の例では、Javaインターフェースの名前を持つファイルを検索し、ファイル内から実装のクラス名を取得します。
だから基本的に私がやろうとしているのはファイル名(X)と1行のテキスト(Y)でJARの "META-INF/services"フォルダーにファイルを含めるです。多分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>
要素を追加することにより、複数のディレクトリを指定できます。