一个复杂Jar的运行,要解决classpath问题,否则运行时会有ClassNotFoundException抛出。而用java,需要手动维护一个classpath文件,或者将所有的库位置放到命令行参数里。有没有更好的办法?
Jar+库目录方式
核心配置在于两点,一是manifest.mf,二是复制依赖,两者缺一不可。
关于这两点,我们先一个个讲。
<!-- 配置生成的jar文件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.maya.prepay.server.main.Main</mainClass>
</manifest>
</archive>