2010-10-27 49 views
0

使用Maven构建ear文件时,包含WebSphere运行时的最佳方式是什么?使用ant,我只是在类路径中添加了lib目录的绝对路径。我已经读过这个主题,似乎人们说使用系统范围的依赖关系。但是,为此,我需要独立包含每个jar(并且WebSphere运行时中有很多jar)。包含WebSphere运行时

有没有一种方法可以包含所有罐子的绝对路径?我不需要耳朵文件中的这些文件,因为它们在部署时将在服务器上可用。

回答

1

上面的丹的职位会工作,但它会增加一些额外的开销。我们继续使用Maven Ant任务(使用maven-ant-tasks jar; http://maven.apache.org/ant-tasks/)。这使我们可以使用我们现有的构建脚本,同时使用Maven的依赖关系。

在不久的将来,我们可能会考虑完全转向Maven构建,但是根据我们的时间表,我们发现这是一个可接受的替代方案。希望这些信息证明有用。

3

有两种,你可以完成你的任务:

  1. 如你所说,你可以声明依赖作为一个系统范围依赖,并提供对JAR文件的路径。虽然maven要求这些依赖关系是绝对的,但它还定义了已经解析为POM文件所在位置的运行时属性${basedir}

  2. 您可以将JAR文件添加到本地Maven存储库服务器(Nexus,Archiva等),然后声明所提供的依赖范围。这将把JAR文件拖放到机器上进行编译和测试,但最终将它们从包中排除。

我已经完成了这两种方法,并且系统范围技术变得特别老旧,特别是当您添加也具有依赖关系的JAR时。在系统范围内,你放弃了maven的传递依赖解析函数。然而,如果应用程序规模较小,1或2个开发人员,则版本库服务器的开销并不大。