java - Maven Eclipse 插件和 openjpa 增强的问题

标签 java eclipse maven openjpa

我们当前的项目是在 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/

相关文章:

java - 如何避免在可观察的通知中使用 if/else?

xml - Eclipse 或 Android Studio XML 编辑器中没有行号

maven - Gradle publishPubNamePublicationToRepoNameRepository 失败,出现 "Could not get resource [...] maven-metadata.xml"

java - 如何在 Eclipse 中构建 Java 项目以创建外部 JAR

将模块放在一个 Jar 中的 Java 项目

java - 在 Eclipse 中设置 EJB 构建类路径

java - 如何在pom项目之外引用代码的相对路径?

java - Spring:@DateTimeFormat 在嵌套对象中被忽略

java - 如何在Java Applet中进行网站认证?

java - 我正在尝试使用 Junit、mockito 和 PowerMock 创建单元测试