2012-07-04 41 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之前刪除此值。

相關問題