Плагин для maven проектов#
Для сканирования проекта добавьте плагин в pom-файл:
<plugin>
<groupId>sbp.eip.metamodel</groupId>
<artifactId>eip-metamodel-scanner-maven-plugin</artifactId>
<version>6.0.0</version>
<configuration>
<!-- Необязательные параметры:-->
<!-- <formatted-output>false</formatted-output>-->
<!-- <strict-type-check>true</strict-type-check>-->
<!-- <default-class>java.lang.String</default-class>-->
<!-- <componentCode>unknown</componentCode>-->
<!-- <interrupt-on-error>false</interrupt-on-error>-->
<!-- <internal-path>classes</internal-path>-->
<!-- <outputDirectory>${project.build.directory}</outputDirectory>-->
<!-- <scanning-scope>MODULE</scanning-scope>-->
<!-- <schema-version>1.0</schema-version>-->
<!-- <use-old-scanner>false</use-old-scanner>-->
<!-- <hibernate-dialect>org.hibernate.dialect.PostgreSQL95Dialect</hibernate-dialect>-->
<!-- <hibernate-physical-naming-strategy></hibernate-physical-naming-strategy>-->
<!-- <hibernate-implicit-naming-strategy></hibernate-implicit-naming-strategy>-->
<!-- <additional-primitive-types>-->
<!-- some.additional.PrimitiveType,-->
<!-- some.additional.AnotherPrimitiveType-->
<!-- </additional-primitive-types>-->
<models>
<jpa>
<model-name>название модели</model-name>
<model-version>версия модели</model-version>
<file-name>название_файла.ldm.xml</file-name>
<packages>
my.packages,
com.my.packages
</packages>
<!-- Необязательные параметры: -->
<!-- <additionalTypes>-->
<!-- com.additional.package.MyType1,-->
<!-- com.another.package.MyType2-->
<!-- </additionalTypes>-->
<!-- <excludePackages>-->
<!-- my.packages.excluded.package1,-->
<!-- my.packages.excluded.package2-->
<!-- </excludePackages>-->
<!-- <excludeTypes>-->
<!-- my.packages.some.another.path.ExcludedType1,-->
<!-- my.packages.another.path.ExcludeType2-->
<!-- </excludeTypes>-->
<!-- <version-field-override-type>java.lang.Long</version-field-override-type>-->
<!-- <whitelist-file-name>whitelist.txt</whitelist-file-name>-->
<!-- <blacklist-file-name>whitelist.txt</whitelist-file-name>-->
<!-- <customModelTransformer>my.packag.MyTransformer</customModelTransformer>-->
</jpa>
</models>
</configuration>
<!--Привязка задачи плагина к задаче сборки приложения-->
<executions>
<execution>
<id>process</id>
<phase>process-classes</phase>
<!-- При размещении класса-трансформатора в тестах, указать другую фазу -->
<!-- <phase>process-test-classes</phase>-->
<goals>
<goal>metamodel_scanner</goal>
</goals>
</execution>
</executions>
</plugin>
Обязательные свойства модуля:
<properties>
...
<meta.componentId>код компонента</meta.componentId>
...
</properties>
Внимание!
В многомодульных проектах добавляйте плагин в pom-файл того модуля, в котором содержатся классы модели. Данное требование предъявляется из-за специфики maven при добавлении плагина в корневой pom-файл. В многомодульном проекте результатом работы maven будет несколько файлов с частями модели, а не один файл с объединенной моделью.
Если модель содержится в нескольких модулях рекомендуется создать новый модуль, в который добавить зависимости на все модули с классами модели. Плагин, в таком случае, добавляйте только в него.
Описание параметров приведено в разделе «Параметры плагина».
Взаимодействие с другими плагинами при сборке#
Плагин работает на фазе «process-classes», так как ему нужны результаты компиляции. Для использования xml-файл с моделью при работе в других плагинах необходимо, чтобы другие плагины не запускались на более ранней фазе (например «process-sources»).
Фазу работы другого плагина можно переопределить, изменив или добавив параметры в его описание следующим образом:
<executions>
<execution>
<id>metaload</id>
<phase>prepare-package</phase>
</execution>
</executions>