最近,硬是和百度的UEditor组件杠上了。
自己的个人官网项目,很容易就搞定了,公司的项目,尼玛,各种问题。
项目多了,环境复杂了,解决问题的方法也得不断调整。

项目用Maven管理jar包,用到了UEditor的jar包。项目原来直接使用UEditor的源码,编译部署后,正常。
后来用的是jar包,放到WEB-INF目录的lib包下,默认情况下,Maven不会把lib包加入到Classpath中,需要手动加入。
线上Maven自动打包,不会把UEditor.jar放到WEB_INF目录下,导致程序报错。

但是maven中央仓库没有这个jar,索幸maven提供了system方式的依赖方式:
 <dependency>
  <groupId>com.baidu.ueditor</groupId>
  <artifactId>ueditor</artifactId>
  <version>1.1.1</version>
  <scope>system</scope>
  <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ueditor-1.1.1.jar</systemPath>
 </dependency>

本地跑了是可以的,线上Maven打包的时候又遇到了问题,提示找不到jar包。
 
 突然想起来,git仓库,不允许提交jar包,虽然本地提交了,但是线上git仓库没有这个jar包,所以maven找不到。
 新发现的,多好的一种配置,竟然由于公司内部“屏蔽jar包”,导致流产,多么让人惋惜啊~
 
 线上环境解决这个问题,有5种方式:
 a.不配置system方式的jar,放到lib目录下,虽然最终打包的war没有这个jar,但是Maven打包不会报错。
 等部署后,手动在项目的lib目录copy一份jar包。
 这种方式的好处是,非常简单;坏处是,如果重新打包部署,这个jar包就没有了,又得重新copy。
 
 b.问了下Boss,建议配置Maven私有仓库,按照maven的标准配置,弄这个jar。
 我感觉实在是太麻烦了,为了一个jar,把maven用的这么复杂,实在是不情愿额。
 
 c.Maven中不配置这个jar,本地环境手动把lib目录加入到Classpath,线上环境在自动化部署脚本里,加入一个
 "coyy" copy ueditor.jar ~tomcat/.../lib/
 
 后来发现,这个方法还是有问题,如果tomcat的war包还没有被Tomcat解压,怎么移动到lib目录呢?
 如果那个项目一直存在,a方式反而更好,只需要放置一次。
 
 d.手动在Maven仓库里放置一个ueditor的jar,不同于私有仓库,和其它项目都在本地一个仓库里。
 本地配置:E:\MavenRepository\com\baidu\ueditor\ueditor\1.1.1\ueditor-1.1.1.jar
 服务器上配置:/home/whptp/.m2/repository/com/baidu/ueditor/ueditor/1.1.1/ueditor-1.1.1.jar
 
 这种方式,适用于本地和服务器上的配置环境,不适合给客户用。
 客户最终拿到的是war包,如果真是我们把源码给他们了,相当于他们有了自己的技术团队,这个时候我们把这点告诉技术团队就可以了。
 
 e.最原始的方法,把源码copy到src目录,编译部署自然就过去了。
 
小结
 a.我自己的个人官网项目,原来使用jar包,不配置Maven,现在改成system引入。
 由于在服务器上没有自动化部署环境,完全依赖本地打包,手动copy到线上。所以,可以使用Maven的system配置jar包。
 
 b.公司项目,最终采用d方法。

参考资料:http://asialee.iteye.com/blog/2100187

原文首发:http://fansunion.cn/article/detail/526.html

Java-Maven项目引入UEditor图片上传组件jar包类库的5种方式的更多相关文章

  1. ueditor图片上传插件的使用

    在项目里使用到ueditor图片上传插件,以前图片上传都是直接使用js代码直接上传图片,比较麻烦,而且效率也比较低,而ueditor这款插件完美的解决了这个问题,这个是百度开发的一款富文本编辑器,在这 ...

  2. ueditor图片上传配置

    ueditor图片上传配置文件为ueditor/php/config.json /* 上传图片配置项 */ "imageActionName": "uploadimage ...

  3. Nexus-在项目中使用Maven私服,Deploy到私服、上传第三方jar包、在项目中使用私服jar包

    场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

  4. vue图片上传组件

    前言:很多项目中都需要用到图片上传功能,而其多处使用的要求,为了避免重复造轮子,让我决定花费一些时间去深入了解,最终封装了一个vue的图片上传组件.现将总结再次,希望有帮助. Layout <d ...

  5. H5拍照、选择图片上传组件核心

    背景 前段时间项目重构,改成SSR的项目,但之前用的图片选择上传组件不支持SSR(server-side-render).遂进行了调研,发现很多的工具.但有的太大,有的使用麻烦,有的不满足使用需求.决 ...

  6. 基于Node的React图片上传组件实现

    写在前面 红旗不倒,誓把JavaScript进行到底!今天介绍我的开源项目 Royal 里的图片上传组件的前后端实现原理(React + Node),花了一些时间,希望对你有所帮助. 前端实现 遵循R ...

  7. 分享一个react 图片上传组件 支持OSS 七牛云

    react-uplod-img 是一个基于 React antd组件的图片上传组件 支持oss qiniu等服务端自定义获取签名,批量上传, 预览, 删除, 排序等功能 需要 react 版本大于 v ...

  8. Maven入门:使用Nexus搭建Maven私服及上传下载jar包

    一. 私服搭建及配置 1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓 ...

  9. Jquery图片上传组件,支持多文件上传

    Jquery图片上传组件,支持多文件上传http://www.jq22.com/jquery-info230jQuery File Upload 是一个Jquery图片上传组件,支持多文件上传.取消. ...

随机推荐

  1. VMware Tools安装问题的解决

    一.VMware Tools工具的作用 VMware虚拟机的插件工具,安装上它可以实现主机与虚拟机的文件共享及拖放.简单的说就是从Ubuntu上边经常输入命令行会出现错误的情况,需要复制到Window ...

  2. 洛谷——V1772 巧妙填数

    描述 将1,2,\cdots,91,2,⋯,9共99个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:31:2:3的比例. 试求出所有满足条件的三个三位数.例如:三个三位数192,384, ...

  3. 40.【IntelliJ IDEA】使用idea解决新建jsp文件而找不到jsp文件模版的新建选项

    转自:https://www.cnblogs.com/sxdcgaq8080/p/7676294.html 使用idea解决新建jsp文件而找不到jsp文件模版的新建选项,这样每次创建一个新的jsp文 ...

  4. GitHub上常用命令(工作中几乎每天用到的命令)

    查看自己当前分支 git branch 查看远程和本地分支 git branch -a 查看origin下的分支 git config -vv git config --lis 创建分支 git br ...

  5. VC6.0调试知识大全

    VC6.0调试知识大全 分类: C++ 2010-09-06 21:33 7080人阅读 评论(5) 收藏 举报 debuggingmfcfunctionmenumicrosoftdll My Not ...

  6. 00087_File

    1.IO概述 (1)要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘.光盘.U盘等)上: (2)当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 ...

  7. 【习题 6-5 UVA-1600】Patrol Robot

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 设dis[x][y][z]表示到(x,y)连续走了z个墙的最短路 bfs一下就ok [代码] /* 1.Shoud it use l ...

  8. 高可用架构篇--MyCat在MySQL主从复制基础上实现读写分离

    实战操作可参考:http://www.roncoo.com/course/view/3117ffd4c74b4a51a998f9276740dcfb 一.环境 操作系统:CentOS-6.6-x86_ ...

  9. eclipse 使用jetty调试时,加依赖工程的源码调试方法

    [1] 添加source eclipse-->debug as-->debug configurations-->source [2]若source不起作用 重新编译一下,mvn c ...

  10. regexp模式匹配+location页面跳转+cookie/localstorage本地存储

    学习js的过程中,根据知识点编写一些code进行测试,以便检验. 这段程序使用了以下知识点: 1.regexp,对数据进行模式匹配 2.使用location对象进行页面跳转. 3.cookie/loc ...