Файл внешних свойств Maven Shade относительно окончательного Jar

1

Всем привет!!

Извините, если это глупый вопрос, но я новичок в Maven и зашел в тупик!

  1. У меня есть проект, который использует MyTest.properties, MoreMyTest.properties.
  2. Я использую плагин Maven Shade для создания этого проекта в файле.jar, который работает нормально! К сожалению, теневой плагин представляет собой упаковку MyTest.properties внутри моего jar файла.

Затем я получаю эту ошибку, когда пытаюсь выполнить банку.

java.io.FileNotFoundException: Не удается найти: свойства /MyTest.properties в файле:\C:\Dev\test.jar!\properties\MyTest.properties в...

Я хочу получить доступ к своим свойствам как внутри своей IDE, так и запустив банку из командной строки при развертывании. Я думал о том, что мои файлы свойств находятся в относительной папке../lib/над местоположением моего файла jar.

В моей программе я хочу получить доступ к следующим свойствам:

File testProperties = new File(
  ClassLoader.getSystemResource("properties/MyTest.properties").getFile()
);

Я попытался добавить это в свой POM.xml

<transformer
    implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
  <resource>*.properties</resource>
  <file>../*properties</file>
</transformer>

(Извините, что форматирование перепуталось с приведенным выше фрагментом кода!)

Но это не работает. Я бы очень признателен за любую помощь в этом. Я не размещал весь код, так как код действительно большой, но я надеюсь, что вы можете получить представление о том, чего я пытаюсь достичь.

Большое спасибо, Пол

  • 0
    Я не уверен, что у вас проблема с плагином Maven Shade; Я думаю, что у вас проблема с файлом свойств. Подумайте об использовании системного свойства, которое указывает на местоположение вашего файла реквизита. Системные свойства могут быть установлены во время выполнения в командной строке и / или программно, поэтому в конечном итоге они становятся достаточно гибкими для такого рода вещей
  • 0
    Привет @wax_lyrical Я столкнулся с той же проблемой с плагином Apache Maven Shade, у вас есть какое-либо решение для этого? пожалуйста, напишите
Теги:
maven
maven-shade-plugin

1 ответ

1

Хорошо, у меня есть решение. Всегда так, сразу после публикации! Но спасибо за ваш ответ.

  <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>../lib</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources</directory>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню