为了实现可执行的 jar 文件,我将以下内容添加到 pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>my.main.Class</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
结果是 (MANIFEST.MF)
...
Class-Path: library1-8.10-SNAPSHOT.jar hessian-4.0.7.jar library2-8.10-SNAPSHOT.jar json-lib-2.2.3-jdk15.jar ezmorph-1.0.6.jar library3-8.10-SNAPSHOT.jar commons-io-1.4.jar
...
等等
这意味着,jar 的版本包含在文件名中。我希望它没有它:
Class-Path: library.jar hessian.jar library2.jar json-lib.jar ezmorph.jar library3.jar commons-io.jar
仅仅因为这是它们在 lib 文件夹中的命名方式。
我们使用的是 Maven 2.2,因此 classpathLayoutType 和 customClasspathLayout 不可用(如果它们有帮助的话)。
任何人都可以帮忙吗?