如果有人仍在寻求这方面的帮助,我们采取了一种稍微不同的方法,即在项目创建时创建 RAD 和 WAS 8.5 特定文件。
对于我当前的项目,我们有一个相当标准的项目结构和命名约定,因此我们使用 Maven 原型来创建我们的项目并将那些 IBM 特定文件,特别是 ibm-webservices-bnd.xmi 包含在 Maven 原型中。
最简单的方法是获取具有这些必要文件的现有项目,并使用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>
您需要对您修改的所有内容执行此操作以包含 a ${rootArtifactId}
or${groupId}
以便velocity 在下一步中对其进行处理:
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"
We remove this value before the 的mvn install
内容,因为它似乎是项目特定的。