У меня есть проект java с тремя модулями.Как указать путь к файлу из главной банки, а не для зависимости JAR
[ ] Utils
----->code
----->pom.xml
[ ] Module B
----->Resources\config.xml
----->code
----->pom.xml
[ ] Module C
----->Resources\config.xml
----->code
----->pom.xml
Модуль Utils является зависимость для обоих модулей A и B. В модуле утилиты есть функция «ReadConfig», которая использует как ModuleB и ModuleC. Модуль B и модуль C имеют разные конфигурации в папке ресурсов.
Оба модуля B и модуля C должны идеально работать как автономные банки с зависимостями, и читать config.xml из целевого каталога (тот же каталог, в котором находится банку).
В настоящее время я получаю местоположение файла конфигурации через:
public static final String JAR_PATH = Constants.class.getProtectionDomain().getCodeSource().getLocation().getPath();
public static final String CONFIG_PATH = JAR_PATH.substring(0, JAR_PATH.lastIndexOf('/')) + "/config.xml";
Этот код находится в модуле Utils.
Дело в том, что в IntelliJ (и netbeans), когда я запускаю проект, JAR_PATH является целевым каталогом Utils. Я хочу, чтобы это указывало на целевой каталог модуля A или модуля B.
Мой вопрос являются:
- Что является лучшей практики в этом сценарии. Если два модуля используют другой файл конфигурации.
- Как заставить intellij/netbeans запускать модуль A/B как автономный (jar с зависимостями) при запуске модулей (если я выполняю сборку mvn: single он генерирует одну банку с зависимостями, которые работают. Я хочу знать, как это сделать IntelliJ)
Непонятно, о чем вы просите, также, пожалуйста, задайте один вопрос одновременно, так как эти два не связаны каким-либо образом. –