idea 使用mybatis generator生成代码时 报错 The specified target project directory src/main/java/ does not exis

使用Eclipse时一切正常, 切换到idea就报错, 虽然可以用绝对路径, 但是不搞明白总觉得不爽

报错的源码 DefaultShellCallback 类 59行, 没理解 new File() 为什么可以传相对路径

        File project = new File(targetProject);
        if (!project.isDirectory()) {
            throw new ShellException(getString("Warning.9", //$NON-NLS-1$
                    targetProject));
        }

绕了一些弯路, 最终参考 https://bbs.csdn.net/topics/390680444 解决问题

edit configurations里面有一项working directory

 

原因:

假设有ABC3个项目特殊原因被拆分, 因为idea默认打开一个项目就好开启一个窗口, 有时候跨项目查看代码不方便

所以用把项目都整合到了一起

假设顺序是:  A -> B -> C

然而idea的 Run/Debug Configurations 中的Working directory 默认用的第一个项目A

所以当B, C项目运行代码时(非A项目)必须修改该值

$MODULE_WORKING_DIR$

========================================================

一直以为工作目录是通过 xxx.class.getClass().getResource(""); 来取的, 造成没理解

maven结构, test模块下的代码

xxx.getClass().getResource("");//当前项目xxx类的路径
如: C:/git/test-server/target/test-classes/cn/test/code/generator/

xxx.getClass().getResource("");//当前项目的根路径
如: C:/git/test-server/target/test-classes/

getResource()实际上都是通过ClassLoader来处理的
====================================================================

获取当前工作目录的2种写法
new File( "." ).getCanonicalPath();
System.getProperty("user.dir");

如: C:\git\test-server

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值