Skip to content

3. Contributing to JPlag

Timur Sağlam edited this page Sep 16, 2022 · 5 revisions

We're happy to incorporate all improvements to JPlag into this codebase. Feel free to fork the project and send pull requests. If you are new to JPlag, maybe check the good first issues.

Please try to make well-documented and clear structured submissions:

  • All artifacts (code, comments...) should be in English
  • Please avoid abbreviations!
  • Make use of JavaDoc to document classes and public methods
  • We provide a formatter configuration, which is enforced by spotless
    • Eclipse/IntelliJ users can use it directly
    • It can always be applied via maven with mvn spotless:apply
  • Use well-explained pull requests to propose your features
  • When re-using code from other projects mark them accordingly and make sure their license allows the re-use
  • Your changes should always improve the code quality of the codebase, especially when working on older components
  • Your git messages should be concise but more importantly descriptive
  • Ensure your git history is clean, or else your PR may get squashed while merging

Building from sources

  1. Download or clone the code from this repository.
  2. Run mvn clean package from the root of the repository to compile and build all submodules. Run mvn clean package assembly:single instead if you need the full jar which includes all dependencies.
  3. You will find the generated JARs in the subdirectory jplag/target.

Running the Report Viewer Locally

The JPlag Report Viewer is a Vue 3 + Typescript standalone application that can be used to display the JSON files generated by the JPlag reporting. The application requires Node.js and npm to be installed on the system.

Before the first run execute:

  • Install necessary dependencies by running npm install in the /report-viewer folder.
  • Start the application by running the npm run serve command in the /report-viewer folder.
  • The report viewer is now accessible in your browser under http://localhost:8080/JPlag/

Adding new languages

If you want to add support for new languages, you need to implement a language module.

Clone this wiki locally