0

最近、私はプロジェクトのメンテナンスに関わっていました。
このプロジェクトは非常に古く、ビルドプロセスはすべてIBMRADに要求されます。
プロジェクト全体を最初から再構築する必要がありますが、その間、この古いプロジェクトを維持する必要があります。
CIシステムに移行し、MavenやGradle(推奨)などのソフトウェアを使用してビルドプロセスを自動化したい。
問題は、このプロジェクトがいくつかのIBMライブラリーを使用してEJB(私が知識と経験が非常に乏しい分野)を操作していることです。また、SVNになく、自動生成されるクラスでいっぱいのejbModuleがあります。 RAD(すべてのスタブクラス)から。
スタブの目的は何ですか?
これを見た後、ビルドプロセスを自動化できるかどうかはよくわかりませんが、誰かがこれを経験したことがありますか?

詳細が不足していることをお詫び申し上げます。さらに何かが必要な場合に備えて、詳細を追加するために何を追加できるかわかりません。

4

1 に答える 1

1

EJB 2.0を使用してRADで開発され、Websphere6.1サーバーにデプロイされたシステムがあります。

同様の設定がある場合は、使用した構造を複製できる可能性があります。

次のプラグインを使用して、ビルドツールとしてMavenを使用しました。

  1. maven-ejb-plugin
  2. was6-maven-plugin
  3. xdoclet-maven-plugin

プロファイルを使用して、インターフェースのいずれかが変更されたときにスタブの生成をアクティブにし、xdocletを使用してwebsphere固有のバインディングを含むBeanクラスに注釈を付け、ejb-jar.xmlおよびその他のibmデプロイメントファイルを生成しました。

動作するまでに数週間かかりました。hudson-ciを使用した自動ビルドがあるため、プロジェクトに適応するためにpomとプラグインのセットアップを試してみる必要があるかもしれません。

pom.xmlのサンプル。

<groupId>your.group.id</groupId>
<artifactId>your.artifact.id</artifactId>
<packaging>ejb</packaging>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-ejb-plugin</artifactId>
            <configuration>
                <ejbVersion>2.0</ejbVersion>
                <generateClient>true</generateClient>
                <clientIncludes>
                    <clientInclude>**/interface/**</clientInclude>
                </clientIncludes>
            </configuration>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <id>xdoclet</id>
        <activation>
            <property>
                <name>xdoclet</name>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>xdoclet-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>xdoclet</goal>
                            </goals>
                            <configuration>
                                <tasks>
                                    <ejbdoclet
                                        destDir="${project.build.sourceDirectory}"
                                        force="true" ejbSpec="2.0"
                                        verbose="true">
                                        <fileset
                                            dir="${project.build.sourceDirectory}">
                                            <include name="**/*Bean.java" />
                                        </fileset>
                                        <packageSubstitution
                                            packages="service" useFirst="true"
                                            substituteWith="interface" />
                                        <homeinterface />
                                        <remoteinterface />
                                        <deploymentdescriptor
                                            displayname="Service Name"
                                            description=""
                                            destDir="${basedir}/src/main/resources/META-INF"
                                            validateXML="true" useIds="true" />
                                        <websphere
                                            destDir="${basedir}/src/main/resources/META-INF"
                                            validateXML="true" />
                                    </ejbdoclet>
                                </tasks>
                           </configuration>
                            </execution>
                </executions>
                </plugin>
    </profile>

    <profile>
        <id>was-ejb</id>
        <activation>
            <property>
                <name>was-ejb</name>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>was6-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <goals>
                                <goal>ejbdeploy</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <wasHome>C:/Program Files/IBM/WebSphere/AppServer</wasHome>
                    </configuration>
                </plugin>

            </plugins>
    </profile>

</profiles>
于 2013-03-14T10:10:41.687 に答える