我有一种不寻常的情况,我需要在可执行jar的清单中添加一个任意的classpath条目(指向jar文件)。(这是针对Swing桌面应用程序的。)
maven-jar-plugin使用maven依赖项为jar清单生成“ Class-Path”条目,并且似乎没有任何添加任意条目的方法。
我还研究了使用“ -classpath”参数将任意类路径条目硬编码到启动应用程序的批处理文件中,但是我不知道如何使Maven将类路径过滤到批处理文件中。
我发现有一个解决此问题的简便方法。您可以将一个<Class-Path>元素添加到<manifestEntries>element,然后设置<addClassPath>true</addClassPath>为<manifest>element。因此<Class-Path>element的值会自动添加到class-path中。例:
<Class-Path>
<manifestEntries>element
<addClassPath>true</addClassPath>
<manifest>element
<Class-Path>element
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addClasspath>true</addClasspath> <mainClass>your.main.Class</mainClass> </manifest> <manifestEntries> <Class-Path>../conf/</Class-Path> </manifestEntries> </archive> </configuration> </plugin>