To make a complete build of the project run
./gradlew clean build allTests reportScoverage javadoc scaladoc
To create the fat jar
./gradlew shadowJar
To run the project run the fat jar (it will run the main class).
java -jar citest-0.0.1-all.jar
To run the project with a custom class use
java -cp citest-0.0.1-all.jar it.unibo.lab.JavaApp
# or
java -cp citest-0.0.1-all.jar lab.ScalaApp
To run from sources
# To run the main class
./gradlew run
# To run java
./gradlew runJava
# To run scala
./gradlew runScala
This is an empty project, with a pre-configured Gradle wrapper. This makes the project buildable without the need of installing Gradle locally. To execute the build, use:
./gradlew build
To clean up the previous build results and start fresh, use instead:
./gradlew clean build
You can use the IDE of your choice, but you can also just work with a text editor and the CLI.
This lab should be performed in groups of 2-4 people, each with her own PC, in order to exercise the basics of teamwork with git. Form a group, and elect a project leader randomly (e.g. using the Scala REPL to throw a random number). Every member of the groups must have a GitHub account.
The project leader should fork this repository. The resulting repository will be the "truth repo". Every other member should fork the "truth repo".
Each member should configure the project for working with git flow and create a develop
branch.
Clone your own fork locally, create develop
, and push it on your remote copy.
Each team member, working on develop
, must create a Java class in the src/main/java
.
There must not be any name clash among team members.
Each member must configure the build.gradle.kts
file in such a way that gradle clean build
will correctly create a build
folder with the class files compiled.
Each member must now sign up on Travis CI, connect its GitHub account, and enable the build for the repository.
Now, each one must create a valid .travis.yml
file, and push it.
If the procedure has been performed correctly, a build will start on Travis CI, and complete successfully.
Each member must now create a pull request from their develop
branch towards the "truth repository" develop
branch.
The project leader must comment and ask a change for each of them (add Javadoc, or any other change).
The developers must comply, and update their pull request (pushing the changes to their local repository should suffice)
Enable the scala
plugin, and write a source under src/main/scala
.
Interoperate with the Java source by calling Java from Scala.
Write a JUnit test:
- Configure Gradle
- Write a simple test using Java
- Write another test using Scala
From now on, each developer must pick a feature from the following list, create a feature branch locally, implement it, and contribute back to the develop
of the truth repository.
- Configure Gradle to generate the Javadocs
- Add a Groovy source and configure the build.gradle.kts appropriately
- Add a Kotlin source and configure the build.gradle.kts appropriately
- Configure JaCoCo and run coverage report
- Upload the coverage report to codecov.io
- Configure PMD and checkstyle
- Using the Travis CI, documentation, configure a deployment on .travis.yml to automatically deploy the generated jars to GitHub releases