Intellij generating jpa modelgen classes empty

89 Views Asked by At

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?

0

There are 0 best solutions below