0

最近我参与了一个项目的维护。
这个项目很老了,构建过程都是 IBM RAD 要求的。
我们必须从头开始重建整个项目,但同时我们必须维护这个旧项目。
我想迁移到 CI 系统并使用 Maven 或 Gradle(首选)等软件自动化构建过程。
问题是这个项目正在使用一些 IBM 库来处理 EJB(我在这个领域的知识和经验非常贫乏),并且我有一个ejbModule,其中充满了不在 SVN 中并且是自动生成的类来自 RAD(所有存根类)。
存根的目的是什么?
看到这个后,我不太确定是否可以自动化构建过程,有人有这方面的经验吗?

抱歉缺少细节,我不知道我可以添加什么更详细,以防需要更多信息。

4

1 回答 1

1

我们有一个使用 ejb 2.0 在 RAD 中开发的系统,部署在 websphere 6.1 服务器上

如果您有类似的设置,您可能能够复制我们使用的结构。

我们使用 maven 作为构建工具,使用以下插件;

  1. maven-ejb-插件
  2. was6-maven-插件
  3. xdoclet-maven-插件

我们使用配置文件在任何接口更改时激活存根的生成,并使用 xdoclet 来注释 bean 类,包括 websphere 特定绑定以生成 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 回答