将多个jar文件添加到jar的类路径中

时间:2014-08-05 13:39:07

标签: java maven ant jar

我正在使用maven-antrun-plugin在打包后对单个可部署工件执行多项操作。但是,我正在使用的包对它自己的插件的类路径做了几个假设,这些插件不在任何存储库中。我已经尝试将插件文件添加到jar中,但没有成功。我的下一步是让插件驻留在jar文件旁边的文件夹中,其结构如下:

    .
    nutch2handler.jar
    plugins/
        plugin1/plugin1.jar
        plugin2/plugin2.jar
        plugin3/plugin3.jar
        etcetcetc

在完成包装各种工件(jar,插件,www,shell脚本等)之后,它会将一些配置添加到jar的根目录,原因与上面相同,这适用于这种情况。我知道我可以创建一个属性,包含一个包含我想要添加到类路径的路径的字符串,但是我不想在这个属性中输入所有这20多个插件,因为插件内容可能会有所不同。如何以递归方式将这些jar文件添加到该类路径?

我目前有

    <property name="jar.class.path" value="" />

在我的目标配置中,并希望使用

插入类似的内容
    <attribute name="Class-Path" value="${jar.class.path}"/>

在jar标签内。

1 个答案:

答案 0 :(得分:0)

如果您的nutch2handler.jar和所有其他插件位于名为&#34; lib&#34;的文件夹中:

您可以定义类似下面的内容,将所有递归jar添加到类路径中:

<path id="jar.class.path">
  <fileset dir="lib">
    <include name="**/*.jar" />
  </fileset>
</path>

然后您可以使用<classpath refid="jar.class.path" />在必要时引用该属性。