Обработка путей к файлам ресурсов в JAR-файлах и в разработке - PullRequest
1 голос
/ 16 января 2010

У меня есть файл хранилища ключей, который я хочу сделать доступным для нескольких классов в моем приложении. Я создал файл .config, в котором указаны имя файла хранилища ключей, его пароль и другая информация.

Это проект, основанный на Maven, поэтому хранилище ключей находится в / src / main / resources. Я создаю банку и перемещаю файл в / resources в банке. Мне бы хотелось, чтобы файл .config говорил что-то вроде «resources / keystore.jks».

Как мне разобрать файл .config так:

  1. Использует /src/main/resources/keystore.jks для кода приложения в разработке.
  2. Использует /src/test/resources/keystore.jks для тестового кода.
  3. Использование / ресурсы в банке.

1 Ответ

3 голосов
/ 16 января 2010

Это проект на базе Maven, поэтому хранилище ключей находится в / src / main / resources. Я создаю банку и перемещаю файл в / resources в банке. Мне бы хотелось, чтобы файл .config говорил что-то вроде «resources / keystore.jks».

Почему ты это делаешь? Тебе не нужно это двигать. Просто поместите это хранилище ключей в resources/resources/keystore.jks, если хотите, чтобы оно было доступно в /resources на пути к классам.

Как мне разобрать файл .config так:

  1. Использует /src/main/resources/keystore.jks для код приложения в разработке.
  2. Использует /src/test/resources/keystore.jks для тестовый код.
  3. Использование / ресурсы в банке.

Если вы последуете моему предыдущему совету, то вам нечего делать.

  1. Ресурсы в src/main/resources доступны в обычном classpath
  2. Ресурсы в src/test/resources доступны в тестовом пути к классам (который имеет приоритет по обычному пути к классам при выполнении runnign mvn test)
  3. src/main/resources является корнем пути ресурса. Если вы хотите, чтобы что-то было доступно в /my/package/my.properties, введите src/main/resources/my/package/my.properties.

Если на самом деле это не соответствует вашим потребностям, взгляните на фильтрацию ресурсов . Фильтрация может быть объединена с профилями для более сложных вещей. Или вы также можете использовать несколько фильтров и подобрать правильный, передав свойство. Но, как я уже сказал, я не уверен, что вам это нужно.

...