我们正在寻求构建多个* .PAA文件以部署在IBM Websphere 8.5上。

我很乐意使用maven将现有的Portal * .war项目整合到PAA文件中。

PAA文件就像EAR文件一样-但具有更多结构。
有关规格,请参见此处:http://www-01.ibm.com/support/knowledgecenter/SSYJ99_8.0.0/config/si_paa_spec.dita

这可行吗?还是应该只使用antscript?

TIA。

最佳答案

绝对可行。我们已经实现了一个解决方案来实现此目的,但是对于Portal 8.0.0.1,该解决方案已用于管理40多个战争文件,主题,罐子以及PAA支持的其他工件。

这些是创建我们的解决方案所涉及的步骤:


在没有WAR文件的情况下手动创建新的PAA(即,复制提供的示例PAA,重命名文件夹和属性文件,以及编辑sdd.xml文件)。确保通过在其中放置测试WAR文件来测试此手动PAA,并确保已对其进行部署。
创建一个新的简单的Maven Pom项目
将PAA项目(没有WAR文件)复制到src / main / resources中(您可以将其添加为资源目录,也可以使用maven-resources-plugin将其添加到目标目录中)
将所有WAR文件和其他工件添加为pom.xml文件中的依赖项(我们使用分类器来区分普通WAR文件和Portlet WAR文件,但这确实需要源项目在其pom中指定分类器)
使用maven-assembly-plugin的dependencySet功能将您的依赖项复制到PAA所需的特定位置。使用fileSet功能可包含先前复制的项目PAA文件。确保程序包package.xml生成一个zip文件,并且不包含基本目录。


package.xml中的样本dependencySet(注意独立WAR文件使用分类器webapp的用法)


    <dependencySet>
        <unpack>false</unpack>
        <scope>runtime</scope>
        <outputDirectory>myApp/components/MyApp/installableApps/war</outputDirectory>
        <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
        <includes>
            <include>*:war:webapp</include>
        </includes>
    </dependencySet>
    <dependencySet>
        <unpack>false</unpack>
        <scope>runtime</scope>
        <outputDirectory>myApp/components/MyApp/installableApps/portlets</outputDirectory>
        <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
        <includes>
            <include>*:war</include>
        </includes>
    </dependencySet>

09-18 11:07