Java-Maven项目引入UEditor图片上传组件jar包类库的5种方式

最近,硬是和百度的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

时间: 2024-11-07 19:13:39

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

ueditor图片上传配置

ueditor图片上传配置文件为ueditor/php/config.json /* 上传图片配置项 */ "imageActionName": "uploadimage", /* 运行上传图片的action名称 */ "imageFieldName": "upfile", /* 提交的图片表单名称 */ "imageMaxSize": 2048000, /* 上传限制大小,单位B */ "ima

百度Ueditor 图片上传无反应,显示上传0张,不能点确定

解决办法: \Data\Ueditor\php\Uploader.class.php 190行左右 /** * 获取文件扩展名 * @return string */ private function getFileExt() { date_default_timezone_set("PRC"); return strtolower( strrchr( $this->file[ "name" ] , '.' ) ); } 添加了date_default_tim

Java实现模拟QQ空间图片上传

Java实现模拟QQ空间图片上传 首先看效果: 首先编写我们的上传jsp代码,如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://

asp.net 中 UEditor 图片上传失败的处理方法

1.0 找到 net 文件夹下面的 web.config 配置文件,注释掉如下的两句: 2.0 Uploader文件默认属性为编译,将其属性改为内容以后重新运行程序,图片上传成功. 3.0 删除 imageUp.ashx 中的 <%@ Assembly Src="Uploader.cs" %> asp.net 中 UEditor 图片上传失败的处理方法

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

背景 前段时间项目重构,改成SSR的项目,但之前用的图片选择上传组件不支持SSR(server-side-render).遂进行了调研,发现很多的工具.但有的太大,有的使用麻烦,有的不满足使用需求.决定自己写一个h5移动端图片上传组件.图片上传是一个比较普遍的需求,PC端还好,移动端就不是特别好做了.下面将过程中一些重点的问题进行简单的记录. 重点 1.关于input 选择功能使用<input>标签实现.属性accept='image/*',:capture表示,可以捕获到系统默认的设备,比如

百度UEditor图片上传、SpringMVC、Freemarker、Tomcat、Nginx、静态资源

个人官网.公司项目都需要 可视化编辑器,百度UEditor做得很不错,就用的这个.项目后台用到了SpringMVC.Freemarker,开发过程中部署在Jetty,线上部署用Tomcat,最后可能配置Nginx代理.     在实际使用过程中,遇到了太多的问题,因此有必要梳理和总结下. 1. 先说百度UEditor在Java环境中的使用:1.1   Html页面或者Freemarker模版里,引入百度UEditor的相关JS和CSS,如下 <script type="text/javas

SpringBoot集成百度UEditor图片上传后直接访问404解决办法

SpringBoot项目上传图片一般是上传至远程服务器存储,开发过程中可能会上传至当前项目的某个静态目录中,此时就会遇到这个问题,文件在上传之后直接访问并不能被访问到,必须重新加载项目. 首先分析一下原因: 我们知道,如果使用类似 /upload/image/1.jpg 这种格式进行图片的访问的时候,SpringBoot读取的并不是本项目中直接的静态目录,而是在进行编译的时候生成target目录下的文件,如下图所示: 那么问题就来了,我们在运行的过程中上传一个图片的话,并不能重新加载当前这个项目

asp.net ueditor 图片上传路径问题解决

最近练习做一个新闻系统,其中不能少了添加新闻和修改新闻的功能 ,而且还要添加图片.添加文字样式, 所以不得不使用富文本编辑器,在kindeditor和ueditor中,选择了目前还在持续更新的百度产品,ueditor. 刚开始,图片上传的时候,图片不能显示,甚至提示后台文件未配置的提示,经过摸索,解决了问题,现在记录一下: 首先,ueditor默认配置是把ueditor的整个文件夹放在项目的根目录中,这样的话,图片什么的都应该能正常显示. 但是我把ueditor的文件夹放到了根目录下的scrip

ueditor 图片上传

/* * 配置: * 1. 修改ueditor.config.js 中的路径 * 2. 添加ueditor.jar 和commons-fileupload-1.2.2.jar 到lib更好 * 3. 如果为strut2集成,则需要添加过滤器继承原有的过滤器,对imageUp.jsp进行过滤 * 4. 如果单独使用工具类,则建议使用script的方式,不要使用input * 如下: * <input id="upload" type="text" value=&