我使用maven-antrun-plugin在打包后对单个可部署工件执行几项操作。但是,我使用的包对它自己的插件的类路径做了几个假设,这些插件不在任何存储库中。我尝试将插件文件添加到jar中,但没有成功。我的下一步是让插件驻留在jar文件旁边的文件夹中,结构如下:
.
nutch2handler.jar
plugins/
plugin1/plugin1.jar
plugin2/plugin2.jar
plugin3/plugin3.jar
etcetcetc
在antrun完成了各种工件(jar,插件,www, shell脚本等)的打包后,它将一些配置添加到jar的根目录中,原因与上述相同,这在本例中有效。我知道我可以创建一个包含字符串的属性,其中包含我想添加到类路径中的路径,但我不想在该属性中键入所有这20多个插件,因为插件内容可能会有所不同。如何递归地将这些jar文件添加到该类路径中?
我现在有
<property name="jar.class.path" value="" />
在我的目标配置中,我想用
插入这样的内容 <attribute name="Class-Path" value="${jar.class.path}"/>
如果您的nutch2handler.jar和所有其他插件都在名为"lib"的文件夹中:
您可以定义如下内容,将所有递归jar添加到您的类路径:
<path id="jar.class.path">
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
</path>
,然后你可以在任何需要的地方使用<classpath refid="jar.class.path" />
来引用属性。