我是一个java应用程序,我在其中使用maven来加载依赖项。我的主要方法是在App.java中,还有其他各种类。这是一个基于弹簧的应用程序。 我使用批处理文件运行此应用程序。
这是我迄今为止所尝试过的:
但我想知道是否还有其他办法可以达到同样的目的。在清单中我将给出所有罐子名称
同样在应用程序jar中,会自动创建清单文件。所以我手动编辑它以提供主类名和所有相关的jar。
任何帮助表示感谢。
感谢。
答案 0 :(得分:5)
使用Maven Jar Plugin做你想做的事。您可以将其配置为放置所有清单条目以满足您的需求。
<plugin>
<!-- jar plugin -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifestEntries>
<Main-Class>package.path.for.App</Main-Class>
<implementation-version>1.0</implementation-version>
</manifestEntries>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix> <!-- use this to specify a classpath prefix, in your case, lib -->
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
为便于将所有依赖项复制到特定文件夹,请使用Maven Dependency Plugin:
<plugin>
<!-- copy all dependencies of your app to target folder-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- use this field to specify where all your dependencies go -->
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>