最近一个项目中,使用号称下一代构建工具的Gradle构建项目。

使用中发现一个问题,Gradle从中央库下载的jar文件在系统的其它目录,使用gradle eclipse添加Eclipse支持时,jar文件是以外部依赖的形式导入的。Eclipse将web项目发布到Tomcat时,是不会自动发布这些依赖的。

可以通过Eclipse在项目上右击 - Propertics - Deployment Assembly,添加“Java Build Path Entries”,添加所有依赖的jar包,就可以在发布时自动发布外部依赖的jar包。

但是手动添加,是不符合自动化构建的要求的,打开.classpath文件,发现gradle自动生成的文件含有类似如下的代码

<classpathentry sourcepath="C:/Documents and Settings/XXX/.gradle/caches/artifacts-24/filestore/commons-collections/commons-collections/3.2/source/73d0340eaecbb0ec9d3e0ace90547ef08cbfaf27/commons-collections-3.2-sources.jar" kind="lib" path="C:/Documents and Settings/XXX/.gradle/caches/artifacts-24/filestore/commons-collections/commons-collections/3.2/jar/f951934aa5ae5a88d7e6dfaa6d32307d834a88be/commons-collections-3.2.jar" exported="true" />

在Eclipse中设置好Deployment Assembly后,代码变为这样

<classpathentry
sourcepath="C:/Documents and Settings/XXX/.gradle/caches/artifacts-24/filestore/commons-collections/commons-collections/3.2/source/73d0340eaecbb0ec9d3e0ace90547ef08cbfaf27/commons-collections-3.2-sources.jar"
kind="lib"
path="C:/Documents and Settings/XXX/.gradle/caches/artifacts-24/filestore/commons-collections/commons-collections/3.2/jar/f951934aa5ae5a88d7e6dfaa6d32307d834a88be/commons-collections-3.2.jar"
exported="true"><attributes><attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib" /></attributes>
</classpathentry>

这样就简单了,我们让gradle自动添加Deployment Assembly

在gradle.build中添加下面的代码

// 生成Eclipse支持时,自动生成Deployment Assembly
eclipse.classpath.file.withXml {def node = it.asNode();for (Node n : node.children()) {if ("lib".equals(n.attribute("kind"))) {def node_attributes = new Node(n, "attributes");def map = new HashMap();map.put("name", "org.eclipse.jst.component.dependency");map.put("value", "/WEB-INF/lib");def node_attribute = new Node(node_attributes, "attribute", map);}}
}

保存以后重新运行gradle eclipse,回到Eclipse刷新项目,现在发布项目,就能自动将所有外部依赖jar包发布到Tomcat下

转载于:https://www.cnblogs.com/S-E-P/p/3227591.html

解决Gradle生成Eclipse支持后,发布到Tomcat丢失依赖jar包的问题相关推荐

  1. 当Eclipse中maven识别不了本仓jar包是的解决方法

    当Eclipse中maven识别不了本仓jar包是的解决方法: 在本地仓找到对应的jar包,复制到java安装目录 打开Eclipse.ini这个文件,把该带代码加到后面 -javaagent:G:\ ...

  2. Eclipse下新建Maven项目、自动打依赖jar包

    当我们无法从本地仓库找到需要的构件的时候,就会从远程仓库下载构件至本地仓库.一般地,对于每个人来说,书房只有一个,但外面的书店有很多,类似第,对于Maven来说,每个用户只有一个本地仓库,但可以配置访 ...

  3. springboot依赖lib外置打成压缩包,以及snapshot依赖jar包ClassNotFoundExcepttion异常的解决办法

    springboot依赖lib外置打成压缩包,以及snapshot依赖jar包ClassNotFoundExcepttion异常的解决办法 mvn插件 assembly压缩zip assembly.x ...

  4. eclipse java 编译jar_Eclipse对Java项目打Jar包

    一定要注意第五步,先编译,不然找不到入口main文件 在本Java项目中,如下图一所示,Java项目含有外部依赖Jar包 -- fastjson-1.2.29.jar  包. 在经历了多次的失败后,最 ...

  5. base64编码 springboot_解决idea中Springboot找不到BASE64Encoder或Decoder的jar包

    解决idea中Springboot找不到BASE64Encoder或Decoder的jar包 问题描述: Springboot项目.明明都把包下载放进去了,就是报错找不到.JDK11 解决方法之一: ...

  6. Log4j2 日志 依赖 jar包 缺失 导致启动报错 解决方法

    Log4j2 日志 依赖 jar包 缺失 导致启动报错 解决方法. 一个Java老项目,更新了日志工具,升级为Log4j2,在引入log4j-api-2.14.0.jar 和log4j-core-2. ...

  7. springboot解决第三方依赖jar包的问题

    springboot解决第三方依赖jar包的问题 参考文章: (1)springboot解决第三方依赖jar包的问题 (2)https://www.cnblogs.com/xiaosiyuan/p/6 ...

  8. 解决maven打包时手动添加的依赖jar包打不进去的情况

    这个问题忙了我一天多的时间,因为太棘手了, 所以记录下来,防止忘记: 问题是这样的,因为项目中用到了自定义的jar包,也就是远程仓库里没有的jar,所以想要引用就必须自己手动添加进去,在idea中运行 ...

  9. eclipse上的maven,添加依赖后无法自动下载相应的jar包

    报错信息: Failed to read artifact descriptor for org.quartz-scheduler:quartz-jobs:jar:2.2.3  org.eclipse ...

最新文章

  1. 让尸体说话-法医密档
  2. Python广度优先查找和深度优先查找(内附python教程分享)
  3. left join 和 left outer join 有什么区别
  4. 油气储运工程中计算机的应用,中国石油大学(北京) 油气储运工程专业介绍
  5. fc oracle,使用 CLI 配置 FC
  6. 用中断的方式实现delay延时的一点注释
  7. 2009岁末之复用系统框架(B/S)
  8. mybatis源码解析 - mapper代理对象的生成
  9. java 回收器_Java虚拟机-经典垃圾回收器
  10. 最快的组合数算法之Python实现
  11. 当配置 DispatcherServlet拦截“/”,SpringMVC访问静态资源的三种方式
  12. 渐进式加载 - 基础讲解
  13. JAVA中将标准的IEEE754 4字节16进制数据转换为float类型数据
  14. CapstoneCS5265设计原理图|CS5265设计DP转HDMI2.0 4K60HZ转换电路|CS5265demoboard
  15. qq语音聊天 java_用Java语言实现QQ部分聊天功能
  16. OpenWrt 一个关于IPv6巨傻X的设置项
  17. python3跑通smpl模型_SMPL模型改用python3+numpy计算
  18. 迎新年,心仪脑新年福利大放送
  19. 人人车“破产”? 官方:假消息且存在人为故意传播
  20. 王传福和比亚迪“造富神话”

热门文章

  1. 链表 队列 基本概念 为什么使用二叉查找树 抽象数据类型
  2. ds18b20温度传感器驱动编写
  3. java8 foreach 异常_错误处理 – 在java 8流foreach中抛出异常
  4. 字典哈希表的实现原理_GCC中unordered_(multi)set/map的实现原理 (Part 2 图解哈希表结构)...
  5. java大量浮点数如何作比较,Java如何正确比较浮点数
  6. 阿尔伯塔大学2019计算机科学 cs,[阿尔伯塔大学]计算机/计算机工程专业
  7. HTML+CSS+JS实现 ❤️卡通湖面上日出动画特效❤️
  8. java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...
  9. Java 将文件的内容复制到另一个文件
  10. IDEA 配置Tomcat