zoukankan      html  css  js  c++  java
  • 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:MavenRepositorycomaiduueditorueditor1.1.1ueditor-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

  • 相关阅读:
    mysql access denied for user root Mysql用户无权限
    远程链接调用sql脚本
    CuteEditor使用详解
    如何设置release模式
    ShardingJDBC不分库,只分表例子
    SpringCloud Stream整合RocketMQ实现消息发送与接收
    Spring Cloud Gateway的PrefixPath及StripPrefix功能
    使用MongoDB的Spring Boot和MongoTemplate教程
    ShardingJDBC读写分离案例
    SpringBoot那些好用的连接池HikariCP
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463105.html
Copyright © 2011-2022 走看看