我一直在使用Avaje.org ebean ORM层了一段时间,但我不知道如何使中所描述的字节码增强功能“Ebean V2.6.0用户指南”使用Maven。
我发现了一个配置实例的Avaje.org主页,但它不工作。 无论是做了演示Maven的样板 GitHub上。
救命!
我一直在使用Avaje.org ebean ORM层了一段时间,但我不知道如何使中所描述的字节码增强功能“Ebean V2.6.0用户指南”使用Maven。
我发现了一个配置实例的Avaje.org主页,但它不工作。 无论是做了演示Maven的样板 GitHub上。
救命!
EBeans现在有自己的Maven插件,但我不能在网上找到任何文件,所以这里是如何使用它的一个例子:
<plugin>
<groupId>org.avaje.ebeanorm</groupId>
<artifactId>avaje-ebeanorm-mavenenhancer</artifactId>
<version>${ebean.version}</version>
<executions>
<execution>
<id>main</id>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
<configuration>
<packages>com.package1.**,com.package2.**</packages>
<transformArgs>debug=1</transformArgs>
<classSource>${project.build.outputDirectory}</classSource>
<classDestination>${project.build.outputDirectory}</classDestination>
</configuration>
</execution>
</executions>
</plugin>
与Eclipse
如果你使用Eclipse,你会希望确保它运行时所需的插件,就像这样:
<build>
<plugins>
<!-- plugins here -->
</plugins>
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.avaje.ebeanorm</groupId>
<artifactId>avaje-ebeanorm-mavenenhancer</artifactId>
<versionRange>[3.3.2,)</versionRange>
<goals>
<goal>enhance</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnConfiguration>true</runOnConfiguration>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
OBSOLETE ANSWER
这个答案是一个很老的版本EBeans的,请忽略它。
原创内容
在Avaje页面上的例子有一些错误。
完整的配置应该是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>process-ebean-enhancement</id>
<phase>process-classes</phase>
<configuration>
<tasks>
<property name="compile_classpath" refid="maven.compile.classpath" />
<echo
message="Ebean enhancing test classes debug level -----------------------------------" />
<echo message="Classpath: ${compile_classpath}" />
<taskdef name="ebeanEnhance" classname="com.avaje.ebean.enhance.ant.AntEnhanceTask"
classpath="${compile_classpath}" />
<ebeanEnhance classSource="${project.build.outputDirectory}"
packages="com.mycompany.**" transformArgs="debug=1" />
</tasks>
<encoding>UTF-8</encoding>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
这将提高所有@Entity类中的“SRC /主/ JAVA / COM / myCompany中”及以下。
您可以通过更严格的包装检验提高执行时间。
此外,您可能需要复制此配置,如果你确实需要提高测试类。 在这种情况下,使用“PROCES测试类”相对于一个第二块。
JBCP的回答是旧版本ebean( org.avaje.ebeanorm
)。 对于较新的版本 ( io.ebean
)您需要更改到ebean-maven-plugin
。
<plugin>
<groupId>io.ebean</groupId>
<artifactId>ebean-maven-plugin</artifactId>
<version>${ebean.version}</version>
<executions>
<execution>
<id>main</id>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
<configuration>
<packages>com.package1.**,com.package2.**</packages>
<transformArgs>debug=1</transformArgs>
<classSource>${project.build.outputDirectory}</classSource>
<classDestination>${project.build.outputDirectory}</classDestination>
</configuration>
</execution>
</executions>
</plugin>
注:ebean插件版本应该是一样ebean版本。
参考: Maven的回购 , Github上