Android 具有相对输出路径的greenDAO模式生成;找不到i/o时失败
接下来,我已经能够创建一个可以编译和运行的应用程序模块,但是如果我向generateAll方法传递一个相对路径,它就会失败。如果我指定一个绝对路径,它可以正常工作。我的android studio项目由几个模块组成,结构如下 project_root,每个模块都有子目录 /道发生器 /应用程序 每个都有自己的src目录,我调用generateAll如下:Android 具有相对输出路径的greenDAO模式生成;找不到i/o时失败,android,greendao,Android,Greendao,接下来,我已经能够创建一个可以编译和运行的应用程序模块,但是如果我向generateAll方法传递一个相对路径,它就会失败。如果我指定一个绝对路径,它可以正常工作。我的android studio项目由几个模块组成,结构如下 project_root,每个模块都有子目录 /道发生器 /应用程序 每个都有自己的src目录,我调用generateAll如下: new DaoGenerator().generateAll(schema, "../app/src");
new DaoGenerator().generateAll(schema,
"../app/src");
这将导致io错误,表明该目录不存在。我已经将路径修改为许多合理的选择,并确认磁盘上存在这些路径,但仍然会出现错误。绝对路径工作得很好,所以我试图理解我遗漏了什么,以使它与相对路径一起工作。谢谢 参数
outDir
应与项目目录相关
例如,假设您的MyDaoGenerator
类位于projectA
下的module1
中,并且您希望将DAO类生成为同一项目的单独module2
projectA
module1/
src/main/java/com.my.package/MyDaoGenerator.java
module2/
src/main/java/ <-- target directory
projectA
模块1/
src/main/java/com.my.package/MyDaoGenerator.java
模块2/
src/main/java/在我的例子中,我不得不将包更改为这个
new DaoGenerator().generateAll(schema, "app/src/main/java");
new DaoGenerator().generateAll(schema, "../app/src/main/java");
来自此
new DaoGenerator().generateAll(schema, "app/src/main/java");
new DaoGenerator().generateAll(schema, "../app/src/main/java");
也许您可以检查运行配置
如果dao生成器代码位于名为M.java的类中,则可以编辑其运行配置:
然后,您应该确保它指向正确的工作目录:
最后,我们可以生成dao代码:
public static void main(String[] args) throws Exception
{
...
new DaoGenerator().generateAll(schema, "."); // direct to working directory
}
这对我有用。希望能有所帮助
来源:脚本运行正常;它决定了如何设置生成的源文件的输出路径,而被接受的答案就是这个路径。但这也是一个很酷的解决方案;没有考虑修改工作目录;谢谢所以基本上,只需将相对路径传递给脚本,而不是设置outDir;酷。谢谢