如果有人仍在寻求帮助,我们在项目创建时创建了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
之前删除此值。
您可能想要指定您正在使用的WebSphere版本,但我从来没有找到一种方法在不使用RAD的情况下为我们的v6.1执行所有此配置。这些文件的一些内容稍后可以通过WebSphere控制台进行修改,如果您知道自己在做什么,则可以自己手动创建文件,但我从来没有找到一种简单的方法来正确配置所有内容没有RAD工具。 – dbreaux