This project is built using
- Node (6.9.0 or higher)
- NPM (3.0.0 or higher)
- Angular CLI (1.7.3).
- Apache Tomcat (9.0.0 or higher)
- Maven (3.0.0 or higher)
https://nodejs.org/en/download/
npm install -g @angular/cli
npm install ng2-webstorage
https://tomcat.apache.org/download-90.cgi
https://maven.apache.org/download.cgi
On Windows, make sure to add Maven to your PATH
environment variable.
First, install all required tools, listed under prerequisites. After that, clone the repository and install all required npm dependencies.
git clone https://github.com/zesch/ctest-builder.git
cd ctest-builder/frontend/
npm install
To build the GapScheme Service, you first need to install c-test-tools Project in your local Maven repository.
git clone https://www.github.com/ltl-ude/c-test-tools
cd c-test-tools/de.unidue.ltl.ctest/
mvn install
You should now be able to build and deploy the project.
NOTE: In order to run, the GapScheme Service requires some resources, which are not distributed in the repository.
Contact someone from the LTL Team to get the resources.
They need to be placed under <c.test.builder>/backend/de.unidue.ltl.ctestbuilder.service.gapscheme/src/main/resources/
before building the service.
Just execute the following commands. The app will be available under http://localhost:4200.
cd <c.test.builder>/frontend
ng serve
The GapScheme Service and Language Identification Service can be deployed in one of two ways - manually or using eclipse. In both cases, the webservice will be available under http://localhost:8080/de.unidue.ltl.ctestbuilder.service.GapScheme/rest/.
Execute the following commands.
<c.test.builder>
refers to the full path to the project's repository.
<tomcat>
refers to the full path to the local Tomcat installation.
# build and deploy GapScheme Service
cd <c.test.builder>/backend/de.unidue.ltl.ctestbuilder.service.gapscheme/
mvn clean package
cp target/*.war <tomcat>/webapps/
# build and deploy Language Identification Service
cd <c.test.builder>/backend/de.unidue.ltl.ctestbuilder.service.LangId/
mvn clean package
cp target/*.war <tomcat>/webapps/
# start server
cd <tomcat>/bin
./startup.sh
Note: Under windows, use ./startup.bat
instead of ./startup.sh
.
Deployment using Eclipse requires the local Tomcat installation to be added as a server in the Workspace. Follow these steps in Eclipse:
- Add the project to your workspace.
- Navigate to the Servers View (
Window -> Show View -> Servers
) - Add a new Server (
Servers View -> New... -> Server
) Server Type:Apache/Tomcat v9.0 Server
Server's host name:localhost
- Add the Webservice to the Server (
Server -> Add and Remove... -> de.unidue.ltl.ctestbuilder.service.GapScheme
)
The service can then be started from eclipse, by starting the server.
Deployment on the server comprises three steps:
- Building all required services
- Copying built services to the server
- Starting all Docker services
When you need to perform this task more often, you may want to automate deployment in a custom shell script.
Note: In case you never deployed the CTest Builder before, you may need to copy the <c.test.builder>/docker
directory to some directory on the server (this may be your user's home directory). <c.test.builder>
refers to the full path to the project's repository.
Run the following commands to build all services using the following commands, the build.sh
script or a suitable alternative.
cd <c.test.builder>/backend/de.unidue.ltl.ctestbuilder.service.gapscheme/
mvn clean package
cd <c.test.builder>/backend/de.unidue.ltl.ctestbuilder.service.LangId/
mvn clean package
cd <c.test.builder>/frontend/
ng build --prod
Copy the built services to the Docker directory on the server, using the following commands or a suitable alternative. <server.docker>
refers to the full path of the docker directory on the server. <user.name>
refers to your username.
scp -P 42922 <c.test.builder>/backend/de.unidue.ltl.ctestbuilder.service.gapscheme/target/*.war <user.name>@192.168.231.133:<server.docker>/backend/gapscheme/
scp -P 42922 <c.test.builder>/backend/de.unidue.ltl.ctestbuilder.service.LangId/target/*.war <user.name>@192.168.231.133:<server.docker>/backend/langid/
scp -P 42922 <c.test.builder>/frontend/dist/* <user.name>@192.168.231.133:<server.docker>/frontend/dist/
Execute the following commands on the server. The CTest Builder App will be available in University Networks under http://192.168.231.133:8000.
cd <server.docker>
docker-compose build
docker-compose up -d
Note: The build process produces unused images. To remove them, run docker rmi $(docker images -f 'dangling=true' -q)
. This will remove all untagged images.
Note: In case something went wrong at some earlier deployment, you may need to remove orphaned containers from earlier builds. Identify the orphaned containers, using docker ps -a
and remove them manually or simply add the --remove-orphans
to the docker-compose up
command.