Build for project without include, src-gen folders fails
Consider the following Spoofax Core project
When checked out in any recent build of Spoofax Core 20160107, 20160108, the build fails.
When opening the project all SDF3 and Stratego files have name analysis errors.
Adding the Spoofax and Spoofax Meta natures enables the Build Project menu entry (why does Spoofax/Eclipse not detect that it needs to do this from the information in the project directory? this is confusing).
A subsequent build does not completely build the project
The pom.xml has a ‘missing artifact’ error
Only by adding the include/ and src-gen/ directories can I make the build work againSubmitted by Eelco Visser on 9 January 2016 at 21:37
I can’t reproduce this. Checked out the project, imported it, meta nature was already there (Spoofax does actually add this automatically), no errors in SDF3 or Stratego files, build works, no missing artifact error in the pom file.
Did you import it in a fresh Eclipse obtained from the nightly build? Did you use that commit rather than the head of the repository? A security student reported this problem, and when I checked out the repository in a freshly downloaded Eclipse, I had exactly the same problems. Only by copying in an include/ and src-gen/ folder from a previously build did I get the project to build.
Yes, I used the commit you pointed out, latest Spoofax from the build farm, and a fresh workspace. The only bug that I found is that sometimes the Spoofax meta-nature is never added. But if you add that and build, it works fine.
The Spoofax meta nature is now always added when the project is imported using the Maven project importer. It also does some sanity checking to ensure that the Java builder is there, because that was also missing sometimes.
Difference may be the version of Spoofax. Or perhaps the missing meta nature threw off the build, which never recovered after that.
Note: I understand that pluto does not attempt to re-build if the cause of the previous failure was not fixed (or at least touched). However, that means the explanation of that failure (of what failed) is never shown again, which makes it hard to address it. Is that a correct understanding?
Log in to post comments