构建一个" Portal Application Archive" * .PAA使用Maven

时间:2014-11-28 04:12:25

标签: java maven websphere-portal

我们正在寻找构建多个* .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。

1 个答案:

答案 0 :(得分:0)

绝对可行。我们已经实现了一个完全正确的解决方案,但对于Portal 8.0.0.1,该解决方案已用于管理PAA支持的40多个war文件,主题,jar和其他工件。

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

  1. 在没有WAR文件的情况下手动创建新的PAA(即复制提供的示例PAA,重命名文件夹和属性文件,以及编辑sdd.xml文件)。确保通过在其中放置测试WAR文件来测试本手册PAA,并确保它已部署。
  2. 创建一个新的简单maven pom项目
  3. 将PAA项目(没有WAR文件)复制到src / main / resources中(您可以将其添加为资源目录或使用maven-resources-plugin将它们添加到目标目录)。
  4. 将所有WAR文件和其他工件作为依赖项添加到pom.xml文件中(我们使用分类器来区分正常WAR文件和Portlet WAR文件,但这确实需要源项目指定他们的pom中的分类器)
  5. 使用maven-assembly-plugin的 dependencySet 功能将您的依赖项复制到PAA所需的特定位置。使用 fileSet 功能包含之前复制的项目PAA文件。确保程序集package.xml生成一个zip文件,但不包含基目录。
  6. 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>