通常使用maven创建java程序的时候,往往是依托于某些框架,打包的设置也在其中了,所以自己不用担心。
但是,如果编写简单的Java程序,自己就必须负责打包了。
常见的错误是两个:
1.找不到主清单文件
2.依赖库找不到。
其实关键问题就是通常创建pom文件的时候,缺省情况下maven插件是不配置的。为了生成可执行的jar包,必须自己配置插件。
如果是简单的程序,没有依赖其他包,可以使用maven-jar-plugin。具体写法如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>替换成自己的主类</mainClass> <!-- 此处为主入口-->
</manifest>
</archive>
</configuration>
</plugin>
如果是有各种依赖,就要使用maven-assembly-plugin。具体写法如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>替换成自己的主类</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>