I have a complicated project imported in intellij
Parent project and submodules (all submodules are also git submodules)
One of jar submodule A(wicket aopplication) is using another jar module B as a lib> In B we are using jpa modelgen form hibernate to generate static model for criteria builder. When launching all maven build in terminal, all is ok.
But when i try launch test in A or launching server for running A it will create in projet A -> target-> generated-classes-annotation the sames classes as in project B but empty, so it crashes on compilation.
class generated in project B:
@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor", date = "2022-10-21T11:57:01.199+0400")
@SuppressWarnings({ "deprecation", "rawtypes" })
@StaticMetamodel(ClientInvoice.class)
public abstract class ClientInvoice_ extends com.seanergie.intranet.entities.companies.accounting.InvoiceBase_ {
public static volatile SingularAttribute<ClientInvoice, BankAccount> bankAccount;
public static volatile SingularAttribute<ClientInvoice, Boolean> includeTimeSheet;
public static volatile SingularAttribute<ClientInvoice, LocalDate> timeSheetStartDate;
public static volatile ListAttribute<ClientInvoice, ClientInvoiceLine> invoiceLines;
public static volatile ListAttribute<ClientInvoice, PaymentAllocation> paymentAllocations;
public static volatile SingularAttribute<ClientInvoice, LocalDate> timeSheetEndDate;
public static volatile SingularAttribute<ClientInvoice, Client> client;
public static volatile SingularAttribute<ClientInvoice, Project> project;
public static volatile SingularAttribute<ClientInvoice, String> currencyCode;
public static volatile SingularAttribute<ClientInvoice, String> additionalInformationHtml;
public static final String BANK_ACCOUNT = "bankAccount";
public static final String INCLUDE_TIME_SHEET = "includeTimeSheet";
public static final String TIME_SHEET_START_DATE = "timeSheetStartDate";
public static final String INVOICE_LINES = "invoiceLines";
public static final String PAYMENT_ALLOCATIONS = "paymentAllocations";
public static final String TIME_SHEET_END_DATE = "timeSheetEndDate";
public static final String CLIENT = "client";
public static final String PROJECT = "project";
public static final String CURRENCY_CODE = "currencyCode";
public static final String ADDITIONAL_INFORMATION_HTML = "additionalInformationHtml";
}
class generated in project A only from intellij maven launcher even in test class:
@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor", date = "2022-10-21T11:57:01.199+0400") @SuppressWarnings({ "deprecation", "rawtypes" }) @StaticMetamodel(ClientInvoice.class) public abstract class ClientInvoice_ extends com.seanergie.intranet.entities.companies.accounting.InvoiceBase_ { }
annotation processor is activated in settings parent pom file:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>utf-8</encoding>
<optimize>true</optimize>
<debug>true</debug>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<fork>true</fork>
<compilerArgs>
<arg>-AaddGeneratedAnnotation=true</arg><!-- http://docs.jboss.org/hibernate/orm/4.3/topical/html/metamodelgen/MetamodelGenerator.html -->
<arg>-AaddGenerationDate=true</arg>
<arg>-AaddSuppressWarningsAnnotation=true</arg>
</compilerArgs>
</configuration>
<executions>
<execution>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.35</version> <!--Make sure it is same as bom version -->
</path>
</annotationProcessorPaths>
</configuration>
</execution>
</executions>
</plugin>
and in project A i have to put is in the pom or i cant use the play button in test class:
<dependency><!-- For launch tests directly from intellij play button-->
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<exclusions>
<exclusion>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
</exclusion>
</exclusions>
<scope>provided</scope>
</dependency>
</dependencies>
any idea?