RAD的自动生成的EJB存根,它们是否必要?

时间:2013-03-13 14:27:02

标签: ejb build-automation ibm-rad

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

对于缺乏细节感到抱歉,我不知道我可以添加哪些更详细,需要更多的东西问。

1 个答案:

答案 0 :(得分:1)

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

如果你有类似的设置,你可以复制我们使用的结构。

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

  1. 行家-EJB-插件
  2. WAS6-行家-插件
  3. 了XDoclet行家-插件
  4. 我们使用配置文件在任何接口更改时激活存根的生成,并使用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>