热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Maven没有将所有依赖项添加到jar中-Mavennotaddingalldependenciestojar

IveasimpleprogrambuildinIntelliJandusingmaventhatusesthedependencyio.netty.Iveadde

I've a simple program build in IntelliJ and using maven that uses the dependency io.netty. I've added to my POM file:

我在IntelliJ中构建了一个简单的程序,并使用了使用依赖关系io.netty的maven。我已经添加到我的POM文件中:

    
        io.netty
        netty-all
        4.1.0.Beta1
    

In order to compile and get a jar file I usually do:

为了编译并获取一个jar文件,我通常会这样做:

  • Clean
  • Compile
  • Package

However I noticed that the dependency is not added to the jar, neither existing in the target folder (Or in any of it's sub folders) or added to the resources folder like usually happens.

但是我注意到依赖项没有添加到jar中,既不存在于目标文件夹中(或者在任何子文件夹中),也不会像通常那样添加到资源文件夹中。

In order to have the io.netty library to be added to the jar I have tried:

为了将io.netty库添加到我尝试过的jar中:

  • Setting the scope to provided and to compile.
  • 将范围设置为提供和编译。

  • Re-importing the pom file.
  • 重新导入pom文件。

  • Deleting io.netty folder in the .m2/repository/ folder.
  • 删除.m2 / repository /文件夹中的io.netty文件夹。

I have several other libraries linked including:

我有几个其他图书馆链接,包括:

  • mysql-connector-java
  • slf4j-simple
  • trove4j

Thanks for reading.

谢谢阅读。

2 个解决方案

#1


For some odd reason I had changed my maven configuration a while ago. While I had not added any new libraries, the old ones still had their classes laying around therefor still being added to the jar.

由于一些奇怪的原因,我刚刚改变了我的maven配置。虽然我没有添加任何新的库,但旧的库仍然有他们的类围绕它仍然被添加到jar。

I solved this issue by changing the build in my pom to:

我通过将我的pom中的构建更改为:


    
        
            org.apache.maven.plugins
            maven-assembly-plugin
            2.4
            
                
                    jar-with-dependencies
                
                
                    
                        com.domain.Program
                    
                
            
            
                
                    make-assembly
                    package
                    
                        single
                    
                
            
        
    

Used as reference: http://mkyong.com/maven/create-a-fat-jar-file-maven-assembly-plugin/

用作参考:http://mkyong.com/maven/create-a-fat-jar-file-maven-assembly-plugin/

#2


Maven doesn't package all dependencies into a jar by default. You can use the assembly plugin to build a "jar with dependencies, as seen here: How can I create an executable JAR with dependencies using Maven?

默认情况下,Maven不会将所有依赖项打包到jar中。你可以使用程序集插件构建一个带有依赖关系的jar,如下所示:如何使用Maven创建一个带有依赖关系的可执行JAR?


推荐阅读
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 在尝试为 Unity 编译一个简单的 Java 库时,运行 `ant jar` 命令后遇到了 Java I/O 异常。具体错误信息为“无法启动程序 ${aAPT},错误代码 2”,这通常表示指定的文件或目录不存在。此问题可能是由于环境配置不正确或路径设置有误导致的。建议检查相关路径和环境变量,确保所有依赖项都已正确安装和配置。 ... [详细]
  • 从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南
    从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
author-avatar
可爱竹子16
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有