web项目从Myeclipse迁移到idea的二三事

 今天新接手了一个myeclipse项目,想把这个项目从myeclipse迁移到idea,花了点时间,也遇到一些新的问题,打算记录下来。

 这是myeclipse的项目结构

  

  我整理一下

  

  整理的时候,我碰到了一下的一下的一些问题:

1 . maven报错:Could not find artifact net.sf.json-lib 

myeclipse中的pom

maven 在编译的时候,发现无法引用该jar包,网上翻阅资料发现,这个引用关系到jdk版本的实现,jdk13和jdk15。

正确的引用应该是这样:

当然讲jdk15改成jdk13也是可以的。

2 E:\idea_project\danbao\danbao\src\main\java\com\longge\util\TwoDimensionCode.java:[18,31] 错误: 程序包com.sun.image.codec.jpeg不存在 

定位一下这个文件,发现竟然是属于rt.jar文件里面的,maven编译竟然无法识别这个jar包,网上翻阅查询资料后发现,竟然是com.sun这个依赖引用的锅。

运来这个jar包是属于“Deprecated and restricted API” 翻译过来就是 “弃用和限制API” 这是单独属于sun公司的一个API,现在出现的公有包能很好地取代com.sun,在jdk1.7以上的环境中已经把这种私人包给屏蔽了,项目在myeclipse编译时用得jdk1.6我本地在idea运行时的环境是jdk1.7,解决方案,在pom文件中增加插件,表明jre的路径。

这样就是解决了这个编译问题,jce.jar包找不到也同理。

 3 maven编译时无法识别lib文件夹下的jar包

我是已经在项目的配置中给这个module添加配置好的依赖的,发现这个maven并没有识别。后来百度了一下maven发现,maven只会加载pom.xml中定义的依赖jar,手动添加的jar包不会被自动加载,也就是说lib文件夹下面的包并不会别maven自动加载,需要我们手动加载。

添加完这个插件之后,就能解决这个问题了。

这里多贴一下maven的目录约定:

${proj-dir}/src/main/Java —— 存放项目的.java文件。

${proj-dir}/src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件。

${proj-dir}/src/test/jave —— 存放所有测试.java文件,如JUnit测试类。

${proj-dir}/src/test/resources —— 测试资源文件。

${proj-dir}/target —— 项目输出位置。

这个${project.basedir}是一定要写的,不然换个环境可能还会报jar包找不到的错误。

其实maven是个很强大的项目管理工具,只不过他它做的很多工作都对用户隐藏了,我们只需要遵守它的约定,就能愉快的玩耍了。

 4 maven 编译时识别自己写的程序包

这个错误的根源其实在项目结构,或者说着既然是个maven项目,就要遵守maven的游戏规则。

对于这个错误,有两个解决方法。

4.1调整包的结构,也就是挪动源文件的位置,因为这个项目不是maven的“父子”依赖关系,一个module可以作为另一个的module,或者需要用的“工具类”并没有单独拿出来再新建一个maven项目,没法打成jar包,供主项目文件去引用。

4.2依靠maven插件,讲“工具类”,“服务类”作为资源文件,然后主文件能引用,个人推荐第二种方法,虽然我是用了第一种“笨方法”解决的问题。

 

以上就是我在这次迁移项目中主要遇到的问题,记录下来,供日后总结学习。

 

转载于:https://www.cnblogs.com/constantingF/p/7425189.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信公众平台无法使用支付宝收付款的解决方案

微信中无法打开支付宝收款是微信浏览器限制所致,可以参考下图方法引导用户转到系统浏览器,即可用支付宝收款。点此下载。 1、引导用户选择在浏览器中打开支付链接,以完成支付。如图1所示:图12、用支付宝继续完成支付,如…

vux radio 改造为 tree 代码片段

思路&#xff1a;用全角空格和半角空格做区分。 1、自己写的部分 this.toOptions arr.map(x > {let kong for (let i 1; i < x.level; i i 1) {kong kong  }kong kong let icon https://s1.ax1x.com/2018/09/27/iML0BD.pngif (x.level 1) {icon https://s1…

Linux下部署多个Tomcat

Linux下部署多个Tomcat 1.环境&#xff1a;1.1.Centos 5.01.2.apache-tomcat-6.0.182.需要解决一下几个问题2.1.不同的tomcat启动和关闭监听不同的端口2.2.不同的tomcat的启动文件startup.sh 中要指定各自的CATALINA_HOME和CATALINA_BASE这两个环境变量。3.解决步骤&#xff1a…

将检索出来的列按逗号拼接起来

(STUFF((select , USER_NAME from TBL_BIZ_TRSBILLS_DETAIL where TRANSPORT_CODE TB.TRANSPORT_CODE and USER_TYPE 司机 for xml path()),1,1, )) AS DRIVER_NAMES 这个语句的意思是&#xff1a;用‘&#xff0c;’将查询到的司机姓名拼接起来&#xff0c;然后用 替换掉…

maven已支持支付宝开放平台SDK

「好消息通知」开放平台SDK 标准版 以官方的名义上传了中央仓库&#xff01;支持maven引入调用&#xff01;开发者可以参考使用中央仓库地址&#xff1a;https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java 后续在 https://docs.open.alipay.com/54/103419/ …

工作99:任务加1逻辑

/*控制任务的添加功能*/addFrom(index,item) {var tasks {name: "",start_time: null}this.form.departmentList[index].accounts[item].tasks.push(tasks);},

mac 查看端口并终结

1、查看 lsof -i tcp:80812、显示结果如下 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 96952 caowei 14u IPv4 0xa209f905c4d41d47 0t0 TCP *:sunproxyadmin (LISTEN)3、使用kill终结 kill 96952

ODP.net与Oracle连接

ODP.net是Oracle提供的数据库访问类库&#xff0c;其功能和效率上都有所保证&#xff0c;它还有一个非常方便特性&#xff1a;在客户端上&#xff0c;可以不用安装Oracle客户端&#xff0c;直接拷贝即可使用。以下内容转载自&#xff1a;http://blog.ywxyn.com/index.php/archi…

支付宝后台如何查看自己的签约详情

第一步&#xff1a;登录蚂蚁金服商家服务中心https://b.alipay.com/&#xff0c;点击产品中心&#xff0c;如下图第二步&#xff0c;点击我的产品-已生效-产品详情&#xff0c;&#xff08;如果在已生效界面看不到自己调用接口对应签约的产品&#xff0c;那么你的签约已经失效&…

从Sun离职后,我“抛弃”了Java,拥抱JavaScript和Node

我是前Sun公司Java SE团队的一名成员&#xff0c;在工作了10多年之后——2009年1月——也就是在甲骨文收购Sun公司之前&#xff0c;我离开了公司&#xff0c;然后迷上了Node.js. 我对Node.js的痴迷到了怎样的程度&#xff1f;自2010年以来&#xff0c;我撰写了大量有关Node.js…

修改oracle SGA,以提高oracle性能

修改oracle SGA&#xff0c;以提高oracle性能 在正常情况下&#xff0c;查询非常慢。1、检查SGA大小&#xff0c;以DBA身份连接到oracle数据库&#xff0c;输入show sga。2、如果SGA过小&#xff0c;请修改其大小修改SGA必须保持的原则&#xff1a;1).sga_target不能大于sga_m…

ALIN10129-自查方案

原贴地址&#xff1a;https://openclub.alipay.com/read.php?tid3374&fid60&#xff0c;欢迎大家访问 报错说明及截图&#xff1a;这个错误一般常见于支付宝老版本的移动支付mobile.securitypay.pay接口中错误原因&#xff1a; 移动支付接口没有权限&#xff08;也就是这个…

实现Repeater控件的记录单选(二)

前一篇《实现Repeater控件的记录单选》http://www.cnblogs.com/insus/p/7426334.html 虽然可以实现对Repeater控件的记录进行单选&#xff0c;但是&#xff0c;你需要懂得写正则表达式和需要写C#程序重写。好吧&#xff0c;方法也许往往不止一种。 先去掉重写的代码&#xff1a…

mongoose 查询 find 指定字段

在第二个参数中填写字符串&#xff0c;需要查询的字段用空格相连。 const Person mongoose.model(Person, yourSchema); // 查询每个 last name 是 Ghost 的 person&#xff0c; select name 和 occupation 字段 Person.findOne({ name.last: Ghost }, name occupation);官方…

Oracle - 新装数据库、新建用户注意事项

Oracle - 新装数据库、新建用户需要注意的几点 目前&#xff0c;新装数据库一般会建两个tablespace: cdmadata, cdmaidx。在新建用户时&#xff0c;一般赋予新用户几个role&#xff1a;角色说明connect用于连接&#xff0c;数据访问&#xff0c;还可以修改本schema的对象resour…

HAS_NO_PRIVILEGE解决方案

报错信息如下&#xff1a;错误原因&#xff1a; 1、没有签约这个接口的合同 &#xff01; 2、签约了相应的接口合同&#xff0c;但没有生效 &#xff01; 3、签约过期导致&#xff0c;如果你之前都可以使用对应的接口&#xff0c;但是近期使用就报错这个&#xff0c;一般就是…