继this tutorial之后,我已经能够创建一个可编译和运行的工作应用程序模块,但如果我将相对路径传递给generateAll方法则会失败。如果我指定一个绝对路径,它工作正常。我的android studio项目由几个模块组成,结构类似
project_root,包含每个模块的子目录
/ daogenerator
/应用
每个人都拥有自己的src目录,我正在调用generateAll:
new DaoGenerator().generateAll(schema,
"../app/src");
导致io错误,表明该目录不存在。我已经修改了许多合理替代方案的路径,并确认路径存在于磁盘上,但仍然出现错误。绝对路径工作正常,所以我试图理解我错过了什么让它使用相对路径。谢谢。
答案 0 :(得分:5)
outDir
参数应该与项目目录相关。
例如,假设您的MyDaoGenerator
课程位于module1
下的projectA
,并且您希望将DAO课程生成为同一<的单独module2
/ em>项目......
projectA
module1/
src/main/java/com.my.package/MyDaoGenerator.java
module2/
src/main/java/ <-- target directory
... outDir
参数为module2/src/main/java
。
答案 1 :(得分:2)
在我的情况下,我必须将包更改为
new DaoGenerator().generateAll(schema, "app/src/main/java");
来自
new DaoGenerator().generateAll(schema, "../app/src/main/java");
答案 2 :(得分:1)
也许您可以检查运行配置。
如果您的dao生成器代码位于名为M.java的类中,则可以编辑它的运行配置:
然后你应该确保它指向正确的工作目录:
最后,我们可以生成dao代码:
public static void main(String[] args) throws Exception
{
...
new DaoGenerator().generateAll(schema, "."); // direct to working directory
}
它对我有用。希望它有所帮助。