【转载】Maven项目打包指定主类并包含mvn依赖

参考

  1. maven打包时包含所有依赖的jar

原因

接上一篇文章 【转载】Maven项目指定主类 实现指定主类打包后,代码新增了 mvn 依赖再次尝试打包发现没有包含 引入的 mvn 依赖。

代码

  1. pom.xml指定主类所在的包名及类名
<build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>

                    <configuration>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <mainClass>Main</mainClass><!-- 你的主类名Main , 如果你的主类名在 com.cnblogs.i 下,那么这里就是 com.cnblogs.i.Main -->
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <archive>
                        <manifest>
                        <mainClass>Main</mainClass><!-- 你的主类名Main , 如果你的主类名在 com.cnblogs.i 下,那么这里就是 com.cnblogs.i.Main -->
                        </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>
            </plugins>
        </build>
  1. pom.xml 同级文件夹下运行
mvn assembly:assembly

可能出现的错误

  • 如果项目中引入的依赖没有设置版本,则打包的时候就会提示报错
posted @   夏秋初  阅读(990)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示