我正在做参考指南教程。在view.groovy中保存更改时,我可以看到eclipse的构建工作区消息,但这些更改直到在核心目录中编译mvn后才会在ViewTester中显示。
这是正确行为吗?如果没有核心目录中的显式mvn编译,是否有可能看到ViewTester中的更改?
我的设置: Win7,jdk1.7.0_55,Eclipse露娜服务第2版(4.4.2),Jspresso Developer Studio,网址:www.jspresso.org/external/updates/e 44/
更新:使用refId id:'contact'代替reference 'contact', ref:'ContactInfo' mvn编译时的显示了以下错误:
[INFO] Scanning for changes : C:\jspdev\wstutorial\quickhr\core\src\main\dsl
[INFO] Detected a change on source C:\jspdev\wstutorial\quickhr\core\src\main\dsl\view.groovy. Sun May 31 17:59:40 CEST 2015 > Sun May 31 17:57:14 CEST 2015
NBR ERROR : 1
UR-Unresolved reference : "Company.pane" ask for <Company.contact.address> of type field
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.038s
[INFO] Finished at: Sun May 31 17:59:51 CEST 2015
[INFO] Final Memory: 15M/37M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.jspresso.maven:sjs-maven-plugin:4.1-SNAPSHOT:compile-sjs (generate-dsl-application) on project quickhr-core: SJS defined frontend / views is invalid.
[ERROR] NBR ERROR : 1
[ERROR] UR-Unresolved reference : "Company.pane" ask for <Company.contact.address> of type field
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionExceptionUPDATE2:正如文森特告诉refId 'contact', id:'contact'的那样,在使用refid时修复了编译错误。清理项目工作区无助于解决ViewTester问题。我发现dsl-view.xml是在保存C:\jspdev\wstutorial\quickhr\core\target\generated-resources\dsl\de\aboware\quickhr\view时在目录view.groovy中更新的,而不是在目录C:\jspdev\wstutorial\quickhr\core\target\classes\de\aboware\quickhr\view中更新的,而且似乎ViewTester是从那里读取的。运行mvn编译将更新此目录中的文件(或手工复制),然后ViewTester将查找更改。知道为什么这不是自动发生的吗?
UPDATE3:可能是eclipse/maven来源的问题。当我在保存了view.groovy中的更改(启用了自动构建)之后,进行了一个干净的构建,ViewTester就可以在控制台上不显式地编译mvn就可以得到这些更改。看来,在将更改保存到view.groovy后,并不是项目的所有必需部分都会自动重新编译。有什么提示吗?
UPDATE4:对于groovy文件中的每一个更改,我都必须做一个干净的构建,才能看到ViewTester和SwingStartup中的变化。我认为与其说是jspresso问题,不如说是eclipse版本/安装的问题。我已经绑定了一个快捷方式来构建干净的东西,这在某种程度上有助于处理这个问题。
UPDATE5: I从零开始了2次(开普勒/露娜),两次使用Jspresso4.2快照,并检查资源目录是否在那里--没有成功。当将更改保存到groovy文件时,将触发编译-sjs目标列表,并在目标//dsl目录中更新spring文件。但是,在默认的输出目录中,目标/类不会发生任何事情。当我手动更改生成的spring文件(从eclipse内部)时,将更新目标/类目录。我认为eclipse不承认spring文件的生成是一个工作区更改,必须由一个自动构建来回答。也许新版本的eclipse在M2E中发生了一些变化。我该再试一次吗朱诺?但是我不知道在火星已经是RC2的时候使用这样一个旧版本是否有什么意义。
发布于 2015-06-01 07:16:26
文档中有一个关于refId使用的错误。这个问题现在已经解决了。正确的说法是:
refId 'contact', id:'contact'
关于主要问题,只需在保存了ViewTester文件后重新启动view.groovy就足以反映更改。不需要通过CLI。通过阅读您的问题,我可以看到Eclipse是被触发的,因此我假设自动构建是出现更改所必需的。你能做一个完全清洁的工作空间(项目>清洁.>清理所有项目)然后再试一次?有时增量构建没有正确地检测到groovy源中的更改。
UPDATE:请确保将target/generated-resources/dsl作为项目中的资源目录正确安装。这应该通过在ME2中注册构建钩子的JDS插件自动实现。

https://stackoverflow.com/questions/30556467
复制相似问题