我们当前的项目是在 STS(Eclipse) 上将 Spring 3/OpenJPA 与 Roo 和 Maven 集成。 M2E
插件有点问题,因为它无法处理实体增强。
所以从编程的角度来说,我们不能在Eclipse下的Maven上一键构建整个项目,而是要让STS(Eclipse)
来构建
,这有点笨拙> 首先运行项目,然后运行 Ant
脚本来增强
实体,然后刷新
项目,然后刷新
服务器部署
。不是很有效。
我想这是一个问题有一段时间了,所以创建这个线程以查看是否有任何更新。
好像有个工具可用( OpenJPA Eclipse Tooling Builder ) 但是好像不支持最新的Eclipse(STS 2.9.1是基于Eclipse 3.7的,那个工具只覆盖到3.4)
所以问题就变成了:有没有什么方法(或工具)我们可以将所有东西(构建
、编译增强
)集成在一起(可能在 Maven 上只设计 POM )?
很高兴学习任何建议。谢谢。
最佳答案
我在使用 eclipse kepler 和 OpenJPA 2.2.1 时遇到了同样的问题。
解决方案很简单,但有点脏。
首先,您需要从该站点安装 OpenJPA m2e 连接器:
http://openjpa-maven-connector.googlecode.com/svn/trunk/openjpa-connector-update-site
接下来,您必须修改您的 POM,并在 openjpa-maven-plugin 插件的元素旁边(在构建元素内)放置下一个定义:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>openjpa-maven-plugin</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>enhance</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
因此构建元素应该如下所示(使用您自己的实体包):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<verbose>true</verbose>
<compilerVersion>1.6</compilerVersion>
<source>1.6</source>
<target>1.6</target>
<debug>true</debug>
<debuglevel>lines,vars,source</debuglevel>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>mappingtool</id>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
com/xxxx/xxxx/*
</includes>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!--This plugin definition only affects eclipse, not the mvn command execution -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>openjpa-maven-plugin</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>enhance</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
关于java - Maven Eclipse 插件和 openjpa 增强的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11978103/