|
|
@@ -7,32 +7,29 @@
|
|
|
## Download and Installation
|
|
|
|
|
|
### Downloading a release
|
|
|
-Download a [released version](https://github.com/jplag/jplag/releases), the most recent is [v2.12.1](https://github.com/jplag/jplag/releases/tag/v2.12.1-SNAPSHOT).
|
|
|
+Download a [released version](https://github.com/jplag/jplag/releases), the most recent is [v3.0.0](https://github.com/jplag/jplag/releases/tag/v3.0.0-SNAPSHOT).
|
|
|
All releases are single-JAR releases.
|
|
|
|
|
|
### Building from sources
|
|
|
-*Note that v3.0.0 is still very much a work in progress, we thus recommend using a released version for now.*
|
|
|
1. Download or clone the code from this repository.
|
|
|
2. Run `mvn clean install` from the root of the repository to install all submodules. You will find the JARs in the respective `target` directories.
|
|
|
3. Inside the `jplag` directory run `mvn clean generate-sources package assembly:single`.
|
|
|
|
|
|
-You'll find the generated JAR with all dependencies in `jplag/target`.
|
|
|
+You will find the generated JAR with all dependencies in `jplag/target`.
|
|
|
|
|
|
-## (Breaking) Changes coming with the v3.0.0 release
|
|
|
+## JPlag legacy version
|
|
|
+In case you depend on the legacy version of JPlag we refer to the [legacy release v2.12.1](https://github.com/jplag/jplag/releases/tag/v2.12.1-SNAPSHOT) and the [legacy branch](https://github.com/jplag/jplag/tree/legacy).
|
|
|
|
|
|
-> Note: The following list is incomplete and gives a rough overview of the changes. In case you depend on missing features we refer to the [legacy release v2.12.1](https://github.com/jplag/jplag/releases/tag/v2.12.1-SNAPSHOT) and the [legacy branch](https://github.com/jplag/jplag/tree/legacy).
|
|
|
+The following features are only available in version v3.0.0 and onwards:
|
|
|
+* a Java API for third-party integration
|
|
|
+* a simplified command-line interface
|
|
|
+* support for Java files containing new language features
|
|
|
+* improved colors for source codes matches in the report
|
|
|
+* a parallel comparison mode
|
|
|
|
|
|
-* Java API to allow 3rd party integration (see Java API usage below).
|
|
|
-* Result clustering is currently not supported (but might be restored).
|
|
|
-* All comparisons are now sorted by average similarity. Maximum similarity is currently not supported (but might be restored).
|
|
|
-* The CLI interface is now properly defined based on `argparse4j`. The CLI interface was slightly changed, a detailed description of all available options of the new CLI can be found below.
|
|
|
-* The following comparison modes are no longer supported: **experimental**, **external**, **special** and **revision**.
|
|
|
-* Renamed the `Program` class to `JPlag`. It contains the main logic, the parsed submissions, and delegates the comparison of files to one of the new `ComparisonStrategy` implementing classes.
|
|
|
-* The new `JPlagOptions` class replaces all previous Options-related classes and manages all available program options.
|
|
|
-* The new `JPlagResult` class bundles all results of a plagiarism detection run. An instance of this class can optionally be passed to the new `Report` class to generate web pages for the results
|
|
|
-* The new `JPlagComparison` class replaces the old `AllMatches` class.
|
|
|
-* We removed `AvgComparator`, `AvgReversedComparator`, `MaxComparator`, `MaxReversedComparator`, `MinComparator`, and `MinReversedComparator` from the `JPlagComparison` (previously `AllMatches`) class. The `JPlagResult` and `JPlagComparison` classes should make adding a custom sorting logic very straightforward if that's required.
|
|
|
-* Removed deprecated web service: `adminTool`, `atujplag`, `homepage`, `maven-libs`, `webService`, and `wsClient`
|
|
|
+The following features are currently only supported in the legacy version:
|
|
|
+* result clustering
|
|
|
+* comparison based on maximum similarity
|
|
|
|
|
|
## Usage
|
|
|
JPlag can either be used via the CLI or directly via its Java API.
|
|
|
@@ -190,3 +187,6 @@ We're happy to incorporate all improvements to JPlag into this codebase. Feel fr
|
|
|
|
|
|
### Adding new languages
|
|
|
Adding a new language frontend is quite simple. Have a look at one of the `jplag.frontend` projects. All you need is a parser for the language (e.g., for ANTLR or for JavaCC) and a few lines of code that send the tokens (that are generated by the parser) to JPlag.
|
|
|
+
|
|
|
+## Research
|
|
|
+If you are doing research related to JPlag, we would love to know what you are doing. Feel free to contact us at jplag@ipd.kit.edu or here on GitHub.
|