создание папки META-INF/services в Eclipse

Я пытаюсь создать расширяемое приложение на Java и решил использовать SPI. Согласно этому учебник Я следую, я должен создать определенный файл в META-INF/services в моей банке, но не знаю как. Я знаю, как создать банку с META-INF, но не могу найти способ, как создать и конкретный файл в этой папке. (Я использую Eclipse)

Спасибо за вашу помощь.

2 ответов


поскольку учебник инструктирует создавать его вручную, а не с помощью ant или maven или других инструментов сборки, просто создайте папку с именем META-INF на корневом уровне с подпапкой с именем услуги и файл с названием манифест.MF.

Я не уверен, как вы планируете выполнить свой файл jar, теперь вы можете просто поместить эту строку в свой MANIFEST.MF:

Manifest-Version: 1.0

для папки "службы" необходимо создать файл имени com.example.dictionary.spi.Dictionary со следующим содержимым одной строки, как указано в учебнике: -

com.example.dictionary.GeneralDictionary

к твоему сведению -META-INF является внутренней Java мета


Если вы строите свой jar-файл с Ant Apache, вам нужно добавить набор файлов metainf или, еще лучше, использовать директиву служб, такую как so

<jar jarfile="pinky.jar">
  <fileset dir="build/classes"/>
  <service type="javax.script.ScriptEngineFactory"
           provider="org.acme.PinkyLanguage"/>
</jar>

Если вы не используете Ant apache, вам нужно добавить файл в jar

jar -uf jarfile.jar META-INF/services/name.of.general.service

, который содержит имя реализации сервиса

com.mycorp.services.Fooservice

Если вы создаете файл JAR с помощью Eclipse "Runnable jar file export" в рамках проекта, выберите " Сохранить как ANT сценарий", а затем измените сценарий ant для упаковки в службы, как описано выше.