Teammates: PSA: Update your local project setup

Created on 12 Nov 2017  路  6Comments  路  Source: TEAMMATES/teammates

Hi everyone,

With the release of V6.0.0, we are adopting Java 8 and Google Cloud SDK as our development tool of choice. If you have cloned TEAMMATES before the commit ca27ffb, you will need to adapt by doing the following:

  • Install JDK 1.8 (1.9 not supported).
  • Install Python 2.7 (3.x not supported).
  • Install Google Cloud SDK (latest version is ok) and its corresponding App Engine Java SDK. Follow items 1-2 of step 3 of this document.
  • Update org.gradle.java.home entry in your gradle.properties; it should now point to JDK 1.8, or can be empty if you have JDK 1.8 in your PATH variable.
  • Add <runtime>java8</runtime> directive in your appengine-web.xml.
  • If the value of test.app.url in your test.properties is localhost:8888, change it to localhost:8080.

    • On a related note, we are now using port 8080 instead of 8888 for local dev server so you need to adapt if you are already accustomed to localhost:8888 previously.

For IDE users, you need to do a fresh setup as lined out in this document. You will first need to delete the files generated by your previous setup:

  • Eclipse users: Remove .classpath, .project, src/main/webapp/WEB-INF/lib, src/main/webapp/WEB-INF/classes, and src/main/webapp/WEB-INF/appengine-generated.

    • Eclipse Luna/Mars users: Upgrade to a newer version of Eclipse. Oxygen is highly recommended.

  • IntelliJ users: Remove .idea folder and teammates.iml or whichever .iml file that exists in your root project folder.

In addition, you need to run npm install from your root project folder in order to update the third-party dependencies used in front-end development.

c.Message

Most helpful comment

One more: change the port from 8888 to 8080 in test.app.url in test.properties

All 6 comments

Also, if you were using the gradle.properties file to use the 1.7 JDK for the project, make sure you update it so that it specifies 1.8 or remove it to use the 1.8 JDK if its specified in your PATH.

Thought I'd mention it since I just spent 30 minutes wondering why Oxygen was refusing to import the project.

If using appengine-web.xml from an old project, it also needs to be updated to include the java8 runtime directive (refer to the new appengine-web.template.xml).

@ncbaihly @whipermr5 thanks for pointing them out, I have updated the issue description accordingly.

One more: change the port from 8888 to 8080 in test.app.url in test.properties

Just a minor detail, possibly not related to Java 8. If you try to deploy (gradlew appengineDeploy) fails with this error if the dev server is running at the same time.

*What went wrong:
Failed to capture snapshot of output files for task ':explodeWar' property 'destinationDir' during up-to-date check.
Failed to create MD5 hash for file content.

Perhaps mention that dev server should be shutdown before trying to deploy?

@whipermr5 is that what you encountered some time back? If it is, it's a Windows-specific file locking issue that has been around for as long as we adopt Gradle.

Was this page helpful?
0 / 5 - 0 ratings