java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Maven解决没有依赖jar包问题

Maven打包之解决没有依赖jar包问题及分析

作者:刘一说

用户使用Maven打包FTPServer程序时,因未配置依赖打包导致jar体积过小且运行报错,解决方法是添加maven-assembly插件生成包含依赖的jar包,确保程序正常运行

问题

最近半年多做得项目都是springboot项目,今晚写了个FTPServer小软件,通过Maven打包之后jar文件只有20KB。

通过命令运行后,提示没有指定运行的Main程序。

出现错误信息:java.lang.NoClassDefFoundError 和 ClassNotFoundException。

原因分析

jar文件只有20KB。

明显不对,打开一看里面缺少依赖的jar包。

解决办法

<build>
    <plugins>
        <plugin>
            <!--<groupId>org.apache.maven.plugins</groupId>-->
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

        <plugin>
            <artifactId>maven-assembly-plugin </artifactId>
            <configuration>
                <descriptorRefs>
                <!-- 此处填写打包后jar包后添加的标识 -->
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                    <!-- 此处填写程序的主入口(main方法) -->
                        <mainClass>com.liuyifen.Start.main</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

总结

maven打包时,默认不会将第三方依赖包打进来。可以在pom.xml中添加maven-assembly插件实现… 打出的包里 xxxx-with-dependencies.jar 就是包含依赖包的。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文