2

私たちの現在のプロジェクトは、Spring 3/OpenJPA を STS(Eclipse) 上の Roo および Maven と統合しています。このM2Eプラグインは、エンティティの拡張を処理できないため、少し問題があります。

したがって、プログラミング側からすると、プロジェクト全体を Eclipse の Maven でワンクリックでビルドすることはできず、最初にプロジェクトに移動してから、スクリプトを実行STS(Eclipse)してエンティティ、次にプロジェクト、次に. あまり効果的ではありません。buildAntenhancerefreshrefreshserver deployment

これはしばらくの間の問題だと思いますので、このスレッドを作成して、更新があるかどうかを確認してください。

利用可能なツール ( OpenJPA Eclipse Tooling Builder ) があるようですが、最新の Eclipse をサポートしていないようです (STS 2.9.1 は Eclipse 3.7 に基づいており、そのツールは 3.4 までしかカバーしていません)。

buildしたがって、問題は次のようになります: すべて ( 、compile with enhancement) を一緒に統合できる方法 (またはツール) はありますか?

提案を喜んで学びます。ありがとうございました。

4

2 に答える 2

0

@Subarule私はMavenを使用していませんが、プロジェクトにはANTのみを使用しており、次のANTスクリプトはビルドの強化に役立ちます。

    <target name="enhance" depends="compile">
    <echo message="Enhancing...."/>
    <!-- ***************************************************************************************************************** -->
    <!-- DO NOT DELETE FOLLOWING CODE. THIS IS ADDED FOR ENCHANCING THE CLASSES AT COMPILE TIME. IT IS REQUIRED BY OPENJPA -->
    <!-- Define the classpath to include the necessary files. -->
    <!-- ex. openjpa jars, persistence.xml, orm.xml, and target classes  -->
    <path id="jpa.enhancement.classpath">
        <!-- Assuming persistence.xml/orm.xml are in META-INF -->
        <pathelement location="META-INF" />

        <!-- Location of the .class files -->
        <pathelement location="${build.classes}" />

        <!-- Add the openjpa jars -->
        <fileset dir="OpenJPA_lib_jar">
                <include name="*.jar" />
        </fileset>
    </path>
    <!-- This is a bit of a hack, but I needed to copy the persistence.xml file from my src dir
         to the build dir when we run enhancement -->
    <!--<copy includeemptydirs="false" todir="bin">
        <fileset dir="src" excludes="**/*.launch, **/*.java"/>
    </copy>-->

    <!-- define the openjpac task; this can be done at the top of the -->
    <!-- build.xml file, so it will be available for all targets -->
    <taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask" classpathref="jpa.enhancement.classpath" />

    <!-- invoke enhancer on all .class files below the model directory -->
    <openjpac>
        <classpath refid="jpa.enhancement.classpath" />
        <fileset dir=".">
            <include name="**/model/*.class" />
        </fileset>
        <config propertiesFile = "${basedir}/src/META-INF/persistence.xml"/>
    </openjpac>
    <echo message="Enhancement complete" />
    <!-- ***************************************************************************************************************** -->
</target>

これがお役に立てば幸いです。

于 2012-08-16T07:14:51.137 に答える