vertx项目打包两种方式:
一、使用DIEA(build)打包(推荐)
File ==>> Porject Structure ==>> Project Settings ==>> Artifects ==>> +号 ==>> 选择From modules with dependencies

IDEA Vertx项目打包.png
可以配置打包后的jar文件所在路径、jar文件的main方法入口、选择打入jar包里的依赖文件等。
二、使用maven打包(也可以使用IDEA集成的maven插件直接打包)
以下依赖为解决打包时的异常所添加。
1、maven-jar-plugin 依赖为了指定方法主入口,即:解决启动时报“kafkaweb.jar”
2、只要不加入新的依赖,maven-dependency-plugin原则上只需要使用一次,得到lib包以后一直使用即可,故将其注释掉。
(1)maven-dependency-plugin 依赖是为了打包时将所有依赖打成lib包,再在启动时指定这些外部依赖的地址。
启动命令:java -Djava.ext.dirs=JAVA_HOME/jre/lib/ext:/home/kafkaweb/target/lib -jar kafkaweb.jar
(2)或者将lib包拷贝到jre的扩展类库——$JAVA_HOME/jre/lib/ext/
启动命令:java -jar kafkaweb.jar
pom.xml文件中需要添加相关依赖
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.donews.data.KafkaHttpServer</mainClass> <!-- 此处为主入口-->
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/lib</outputDirectory>
<!--不需要导出的jar-->
<excludeArtifactIds>
spring-boot-devtools,junit
</excludeArtifactIds>
<!--不需要导出的jar-->
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>