Как заменить переменную реальным значением в файле XML, который находится в другом файле jar зависимостей от Maven - PullRequest
0 голосов
/ 17 июня 2011

У нас есть проект с именем web-app1, и у него есть зависимость от другого jar-файла с именем core-app.jar, который предоставляется другой командой в качестве общей библиотеки, однако в этом core-приложении есть файл hibernate.cfg.xml..jar (внутри jar), с содержимым, как показано ниже.

<hibernate-configuration>
    <session-factory>
        <property name="dialect">${hibernate.dialect}</property>
        <property name="query.substitutions"><![CDATA[false 'N', true 'Y']]></property>
        <property name="show_sql">false</property>
        <property name="format_sql">false</property>
        <property name="use_sql_comments">false</property>
        <property name="generate_statistics">true</property>
        <property name="hibernate.connection.release_mode">after_transaction</property>
       <!-- Search Configurations -->
        <property name="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</property>
        <property name="hibernate.search.default.indexBase">${lucene.index.home}</property>
        <property name="hibernate.search.default.batch.merge_factor">10</property>
        <property name="hibernate.search.default.batch.max_buffered_docs">10</property>
    </session-factory>
</hibernate-configuration>

Как мы видим в разделе «Настройки поиска», существует переменная $ {lucene.index.home}, которую следует заменить другимпроекты на другой платформе ОС,
, поэтому вопрос, предоставляет ли maven способ фильтрации файла jar зависимостей и фильтрации содержимого?какие-нибудь плагины?война: война, распаковать?зависимости?Я не мог придумать быстрый способ сделать это.мне кажется, независимо от того, какой плагин будет принят, плагин должен делать 4 вещи в основном.

  • 1 распакуйте банку в фазе ресурсов процесса.
  • 2 замените $ {var} значением, определенным в профиле.
  • 3 снова упакуйте его обратно в банку.
  • 4 необходимо скопировать его обратно из упаковки /распаковка рабочей области обратно в путь процесса maven ??

кто-нибудь сталкивался с подобным требованием раньше.

спасибо

Ответы [ 2 ]

1 голос
/ 17 июня 2011

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

0 голосов
/ 20 июня 2011

Если вы действительно ДЕЙСТВИТЕЛЬНО должны выполнять фильтрацию во время сборки для целей конфигурации, эти файлы конфигурации должны быть отфильтрованы, а НЕ ваши зависимости.Затем вы должны либо объединить указанный файл в несколько артефактов (при условии, конечно, что вы нацеливаетесь на несколько сред), либо быть предоставлены за пределами встроенного артефакта как внешний ресурс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...