У меня 3 maven модуля:
- ядро
- данные
- данных DEV
ядро имеет зависимость:
<dependency>
<groupId>test</groupId>
<artifactId>data</artifactId>
<scope>provided</scope>
<version>1.0-SNAPSHOT</version>
</dependency>
data и data-dev состоят из одного файла: test.txt , расположенного в пакете test.data в оба модуля. (Вот первый вопрос: стоит ли создавать 2 артефакта с разными именами, но с одинаковой структурой пакетов?)
- data.txt внутри data содержит простую строку "Hello World".
- data.txt внутри data-dev содержит другую строку "hello dev".
core модуль загружает data.txt как ресурс и выводит строку из файла в system.out следующим образом:
InputStream is = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("test/data/data.txt");
if (is == null) {
System.out.println("No Resource");
return;
}
BufferedReader br = new BufferedReader(new InputStreamReader(is));
System.out.println(br.readLine());
Моя идея - предоставить data.jar или data-dev.jar из командной строки для запуска core.jar с той или иной версией data.txt file.
Но я не могу найти рабочее решение.
Как правильно реализовать эту идею и запустить файл JAR из командной строки?