Как улучшить класс из отдельного jar во время сборки с openJPA?

Я пытаюсь улучшить класс Entity из другого Jar-файла с помощью плагина maven. openjpa-maven-plugin и, к сожалению, я не нашел правильный способ сделать это.

У меня один класс MyPojo из модуля MyDomain упаковано в банку my-domain.jar:

public class MyPojo {

private Long id;

...

}

В моем втором проекте MyJpa упаковка my-jpa.jar, это зависит от модуля my-domain.jarи Maven настроен для использования Build Time OpenJPA Enhancer со следующим:

<plugin>
            <groupId>org.apache.openjpa</groupId>
            <artifactId>openjpa-maven-plugin</artifactId>
            <configuration>
                <includes>**/entity/*.class</includes>
                <addDefaultConstructor>true</addDefaultConstructor>
                <enforcePropertyRestrictions>true</enforcePropertyRestrictions>
            </configuration>
            <executions>
                <execution>
                    <id>enhancer</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>enhance</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.apache.openjpa</groupId>
                    <artifactId>openjpa</artifactId>
                    <version>2.3.0</version>
                </dependency>
            </dependencies>
        </plugin>

и я использую отображение XML orm.xml объявлено в persistence.xml:

            ... 
    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>

    <mapping-file>META-INF/orm.xml</mapping-file>

 ...

и с orm.xml, который выглядит так:

    <entity class="MyPojo" access="FIELD">
    <table name="MYPOJO"/>
    <attributes>
        <id name="id">
            <generated-value strategy="AUTO"/>
        </id>
    </attributes>
    </entity>

Бег mvn install выдает следующую ошибку:

Эта конфигурация запрещает оптимизацию во время выполнения, но следующие перечисленные типы не были улучшены во время сборки или во время загрузки класса с javaagent:

Когда я двигаю класс MyPojo в проект MyJpa (вместо проекта MyDomain) это работает.

Итак, мой вопрос: что мне нужно настроить, чтобы иметь возможность улучшить класс во время сборки MyPojo исходя из внешнего Jar?

1 ответ

Решение

Что мне нужно настроить, чтобы иметь возможность улучшить во время сборки класс MyPojo, поступающий из внешнего Jar-файла?

Если я правильно понимаю ваш вопрос, вы не сможете улучшить класс, который живет внутри банки во время сборки. Если вы хотите улучшить таким образом, вам нужно разархивировать класс, улучшить, а затем повторить.

Другие вопросы по тегам