我有一个项目,其中包含一个 Groovy 通用代码模块和一个单独的 Grails web-app 模块。我从 Eclipse 更改为 IntelliJ 12.1.2,这是一个巨大的改进。一切似乎都运行得更好——例如,当我向 Groovy 项目中的类添加字段时,我立即在 Grails 项目的 IntelliSense 中看到它们可用。此外,另一个很大的好处是,我终于能够在 IDE 中调试 Grails 应用程序(万岁,因为不必到处乱扔打印语句的代码!)。
但是,我遇到的问题是,当我执行 Run->Run 'Grails:FooProj' 或 Run->Debug 'Grails:FooProj' 时运行的代码似乎与保存的不同步代码。例如,我可以在代码中添加一条日志语句,然后尝试运行它,但它没有显示出来。就像它使用 jar/wars 的缓存版本一样。
需要注意的一点是,对于我的运行/调试配置,我必须检查 Maven 设置的“脱机工作”框,这样它就不会进入连接下拉 jar 。我希望它使用我对代码所做的本地更改,而不是发布的内容。
如何让 IntelliJ 使用我在调试 Web 应用程序时所做的本地代码更改?我可以去控制台做一个mvn clean install
在公共(public)代码项目上,之后它在 IntelliJ 中运行良好,但我不想每次调试我的应用程序时都掉到控制台。
最佳答案
我有一个问题和出路给你。
问题:- BuildConfig
中是否有以下设置如果您使用的是 Grails 版本 > 2.x?如果没有,您可以尝试添加它,然后运行您的应用程序。
grails.project.dependency.resolution = {
pom true
}
出路:-
在 InteliJ 中,如果您转到
Run/Debug Configuration -> Maven Settings -> Before Launch(in bottom)
并设置 Before Launch
Run Maven Goal
的配置然后每次运行应用程序时,它都会隐式执行 mvn install
为您而不是您在命令提示符下执行此操作。
关于maven - 使用 IntelliJ 12.1.2 和 Maven 项目时 Grails 应用程序不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16323077/