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

 


版权声明:本文为zx1323原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。