2012-07-04 87 views
0

我正在致力于WebSphere的webservices,我希望不再依赖于Rational Software Delipvery Platform(aka RAD)IDE。在没有RAD的情况下生成ibm-webservices-ext.xmi和ibm-webservices-bnd.xmi

我问,如果有人知道它有可能产生以下文件:

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

而不必使用RAD(例如某些ant脚本或WebSphere批处理)。

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

我试图将这些webservices项目移植到一个更可控制的开发过程中,使用maven,自动构建等等,但是我发现它非常困难。

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

+0

您可能想要指定您正在使用的WebSphere版本,但我从来没有找到一种方法在不使用RAD的情况下为我们的v6.1执行所有此配置。这些文件的一些内容稍后可以通过WebSphere控制台进行修改,如果您知道自己在做什么,则可以自己手动创建文件,但我从来没有找到一种简单的方法来正确配置所有内容没有RAD工具。 – dbreaux

回答

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但未被过滤。移动包括对过滤的文件集:

<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仓库目标/生成的来源/原型/ pom.xml中并运行

mvn deploy 

并指导开发人员开始使用原型来创建Maven化项目。

注:我们的IBM-web服务-bnd.xmi文件显示,包括像xmi:id="RouterModule_1123456789" 我们,因为它似乎是项目特定的mvn install之前删除此值。

相关问题