Настройка свойства сборки maven программно на Java без написания плагина?

#java #maven #pom.xml

Вопрос:

Мне нужно определить некоторые дополнительные свойства, которые будут использоваться в конфигурациях плагинов maven (pom.xml). Возможно ли это программным способом с использованием кода Java? Цель exec:java, по-видимому, запускает код непосредственно внутри процесса maven. Есть ли какой-нибудь способ использовать это?

Мне нужно свойство project basedir с прямыми косыми чертами, чтобы я мог использовать его в ресурсе скрипта CLI wildfly для настройки ресурса базы данных WildFly. Ресурс базы данных должен указывать на абсолютный путь, т. е. Создать выходной каталог или basedir.

Это сценарий:

 /subsystem=datasources/data-source=MyDS:add(
   jndi-name=java:jboss/datasources/MyDS,
   driver-name=h2,connection-url="jdbc:h2:file:${basedir}/db;
   TRACE_LEVEL_SYSTEM_OUT=0",user-name=sa,
   validate-on-match=true,background-validation=false,
   driver-class=org.h2.Driver)
 

Ответ №1:

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

Что я могу придумать, так это использовать плагин GMaven или плагин AntRun для встраивания кода Groovy или ant в ваш pom.xml. Оба они могут взаимодействовать с объектом проекта, что означает, что они могут манипулировать свойствами. Но это будет нелегко, и ваш пробег может отличаться.

Комментарии:

1. gmaven-плагин больше не работает с java 16. Я добавлю кое-какую информацию.

2. есть проект по переписыванию, вы пробовали это сделать? github.com/groovy/GMavenPlus

3. Что ж, тогда, пожалуй, я попробую это сделать. Хотя я бы предпочел не использовать еще один язык. И особенно заводной — в основном Javascript без широкого распространения — я просто ничего не могу там найти.

4. Нет, groovy-это в основном интерпретируемая Java с некоторыми изящными дополнениями. Я скептически отношусь к производственному коду, но для сборки groovy попадает в самую точку: вы получаете полную функциональность Java, но с простотой использования языка сценариев. Я использовал GMaven в течение многих лет, и у меня никогда не было никаких проблем

5. Используете ли вы какую-либо помощь с кодом для Groocy? Как? Какая IDE?