Java 如何在Maven中启用Ebean增强?
我已经使用ORM层一段时间了,但我不知道如何启用with Maven中描述的字节码增强功能 我在Avaje.org主页上找到了一个,但它不起作用。GitHub上的应用程序也没有Java 如何在Maven中启用Ebean增强?,java,maven,maven-3,maven-plugin,ebean,Java,Maven,Maven 3,Maven Plugin,Ebean,我已经使用ORM层一段时间了,但我不知道如何启用with Maven中描述的字节码增强功能 我在Avaje.org主页上找到了一个,但它不起作用。GitHub上的应用程序也没有 救命啊 过时的答案 这个答案是针对一个非常古老的EBeans版本的,请忽略它 原创内容 Avaje页面上的示例有一些错误 标记不正确:“process ebean enhancement”不是 Maven生命周期,因此示例配置中的插件不会 正确运行。正确的阶段是“过程类” “classSource”参数不正确。按照配置,
救命啊 过时的答案 这个答案是针对一个非常古老的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>
org.apache.maven.plugins
maven antrun插件
增强过程
进程类
UTF-8
跑
这将增强“src/main/java/com/mycompany”及以下文件中的所有@Entity类
通过对要检查的包进行更严格的限制,可以缩短执行时间
此外,如果确实需要增强测试类,则可能需要复制此配置。在这种情况下,使用第二个块的“过程测试类”阶段。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>
org.avaje.ebeanorm
avaje Ebenorm mavenenhancer
${ebean.version}
主要的
进程类
增强
com.package1.*,com.package2**
调试=1
${project.build.outputDirectory}
${project.build.outputDirectory}
使用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>
org.eclipse.m2e
生命周期映射
1.0.0
org.avaje.ebeanorm
avaje Ebenorm mavenenhancer
[3.3.2,)
增强
真的
真的
JBCP的答案是针对旧的ebean版本(org.avaje.ebeanorm
)。对于(io.ebean
)您需要更改为ebean maven插件
<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>
伊奥·埃宾
,答案也可以在这里的博客中找到:对我有用…但我必须将执行放在配置中。当我在Eclipse中使用m2e时,编译工作正常,并且运行。但m2e抱怨“插件执行不包括在生命周期配置中:org.avaje.ebeanorm:avaje-ebeanorm-mavenhance。”有人知道如何解决这个问题吗?哇,很好的一个,我似乎无法理解,但是…进入标签内吗?订单重要吗?我忘记了如果订单重要,我就把它放在块下面,在里面。我会更新答案以显示它…嗨,我成功了!订单不重要,可以是在…之前或之后,我的具体问题是目前,我省略了配置。另外,我正在使用org.avaje.ebeanorm版本4.1.8。因此,在您的回答中替换了该版本