Looking for a better name! Let me know if you have one 😉.
This project is a blog written in GWT on top of app engine. I started this project because I wanted a blog site for my willshex.com domain. The project does not use gwtrpc, I am using a json based API (or 4 - search, user, blog, and page split by functional area).
There are things missing from the project, but I am working on it everyday, and making good progress too.
I am also adding things that I think I might need as I go along, so if you think there is something useful that you would like to request, please, raise an issue if there isn't one there yet.
I will put a road map shortly on the wiki, maybe even with a "how to".
Make sure that you have git and maven installed before you start.
-
Clone the repository:
git clone https://github.com/billy1380/blogwt.git cd blogwt -
Install Dependencies: This project relies on several non-Maven dependencies which need to be installed into your local Maven repository. Run the provided script:
chmod +x installdeps.sh ./installdeps.sh
Note: This script installs dependencies into
~/.m2/repository. Edit the script if your local repository is located elsewhere. -
Build and Install: Compile the project and install artifacts to your local repository:
mvn clean install
-
Run Locally: To verify the application locally:
mvn appengine:devserver
The site should be accessible at
http://localhost:8888.Note: To change GWT client code on the fly, you also need to run the code server:
mvn gwt:run-codeserver.
To deploy the application to Google App Engine, ensure you have built the project dependencies first.
-
Build (skipping GWT for speed):
mvn install -Dgwt.compiler.skip=true -DskipTests
Note: This installs the parent and shared modules to your local repository. The
-Dgwt.compiler.skip=trueflag saves time by skipping the GWT JavaScript compilation if you don't need to update the client. -
Deploy:
cd blogwt-server mvn appengine:deploy
This command uploads the application to the App Engine project configured in pom.xml.
The project is a multi-module Maven project:
- blogwt-shared: Common code shared between client and server (DTOs, Enums, Utils).
- blogwt-client: GWT client-side code (UI, Layouts, Pages).
- blogwt-server: App Engine server-side code (Servlets, API Actions, Persistence, Objectify logic).
- deps: Folder created by
installdeps.shcontaining cloned dependencies.
