maven 打包可执行 jar包 java application 方法

时间:2022-02-23 13:05:22

pom.xml 

添加如下:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.main.DubboProviderMain</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>com.jolira</groupId>
<artifactId>onejar-maven-plugin</artifactId>
<version>1.4.4</version>
<executions>
<execution>
<configuration>
<attachToBuild>true</attachToBuild>
<classifier>onejar</classifier>
</configuration>
<goals>
<goal>one-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>



注意: maven 工程的 main 类 不可调用src/test 下面的类包来执行,否则会报错:

JarClassLoader: Warning: Null manifest from input stream associated with: lib/zookeeper-3.4.5.pom
Exception in thread "main" java.lang.ClassNotFoundException: com.test.dubbo_Service.DubboProviderMain
        at com.simontuffs.onejar.JarClassLoader.findClass(JarClassLoader.java:713)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at com.simontuffs.onejar.JarClassLoader.loadClass(JarClassLoader.java:630)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at com.simontuffs.onejar.Boot.run(Boot.java:334)
        at com.simontuffs.onejar.Boot.main(Boot.java:166)