在没有RAD的情况下生成ibm-webservices-ext.xmi和ibm-webservices-bnd.xmi

时间:2012-07-04 11:49:37

标签: web-services maven build websphere ibm-rad

我正在为WebSphere的webservices工作,我希望不再依赖Rational Software Delipvery Platform(又称RAD)IDE。

我在问是否有人知道是否可以生成以下文件:

  • IBM-web服务-ext.xmi文件
  • IBM-web服务-bnd.xmi
  • 的webservices.xml

无需使用RAD(例如某些ant脚本或WebSphere批处理)。

这是一个非常烦人的锁定。

我正在尝试使用maven,自动构建等将这些Web服务项目移植到更可控的开发过程中,但我发现它非常困难。

有人解决了类似的问题吗?

1 个答案:

答案 0 :(得分:1)

如果有人仍在寻求帮助,我们在项目创建时创建了RAD和WAS 8.5特定文件,采取了稍微不同的方法。

对于我当前的项目,我们有一个相当标准的项目结构和命名约定,因此我们使用Maven原型来创建我们的项目,特别是在Maven原型中包含那些IBM特定文件,尤其是ibm-webservices-bnd.xmi。

最简单的方法是使用包含这些必要文件的现有项目,并使用项目文件夹中的create-from-project原型:

mvn clean archetype:create-from-project -Dinteractive=true

使用交互模式为原型提供合理的archetype.artifactId(但不要更改项目的GAV):

Define value for archetype.groupId:  com.name.archgroup: : com.name.common.archetype
Define value for archetype.artifactId:  MyService-archetype: : service-archetype-0.8
Define value for archetype.version:  1.0-SNAPSHOT: :
Define value for groupId:  com.name.archgroup: :
Define value for artifactId:  MyService: :
Define value for version:  1.0-SNAPSHOT: :
Define value for package:  com.name: : com.name.common.archetype

这可以帮助您完成大部分工作,但默认情况下不会处理IBM文件。然后,诀窍是修改/ MyService / target / generated-sources / archetype / target / classes / archetype-resources中生成的目标文件,以修改IBM文件。用${rootArtifactId}${groupId}替换旧项目名称和包名称的实例,跟踪哪些文件的值不正确。

然后修改/MyService/target/generated-sources/archetype/target/classes/META-INF/maven/archetype-metadata.xml以包含您必须在过滤中手动更改的文件。例如,在我的EJB模块部分中,* .xmi包含但未过滤。将include移动到已过滤的文件集:

    <fileSet filtered="true" encoding="UTF-8">
      <directory>src/main/resources</directory>
      <includes>
        <include>**/*.xml</include>
        <include>**/*.properties</include>
        <include>**/*.xmi</include>
      </includes>
    </fileSet>

您需要为修改后的所有内容执行此操作,以便包含${rootArtifactId}${groupId},以便速度在下一步中对其进行处理:

cd target\generated-sources\archetype
mvn install

这会将您的更改打包并将jar放入本地存储库,以便您可以在发布到Maven存储库服务器之前对其进行测试。

一旦您满意,将您的maven存储库添加到target / generated-sources / archetype / pom.xml并运行

mvn deploy

并指示开发人员开始使用原型来创建您的mavenized项目。

注意:我们的ibm-webservices-bnd.xmi文件似乎包含xmi:id="RouterModule_112345678901234"之类的内容 我们在mvn install之前移除此值,因为它似乎是项目特定的。