Feature Wiki
Tabs
Using Maven to manage dependencies
Page Overview
[Hide]1 Initial Problem
The ILIAS java server is provided as "all in one jar file" which currently has a file size of around 42 MB. Additionally the source files - including all external libraries - of the java server are stored in the "src" directory below "Services/WebServices/RPC".
The github documentation sets limits regarding the maximum file size of single files in the repository:
- Softlimit 50 MB
- Hardlimit 100MB
This feature request suggests to exclude external libraries from the ILIAS project by using the build automation tool Apache Maven
2 Conceptual Summary
- The directory structure is adapted to the standard Maven directory structure
- Sources will be compiled with target version java 11
- All external libraries will be defined as dependencies in the main pom.xml.
3 User Interface Modifications
3.1 List of Affected Views
- None
3.2 User Interface Details
no user interface
3.3 New User Interface Concepts
None
3.4 Accessibility Implications
None
4 Technical Information
Precompiled binaries are no longer shipped with the source code.
The build / compile process is executed on the client installation. Clients with firewall restrictions filtering outgoing traffic have to choose one of the following ways to build the ilServer binary:
- Prebuild the ilServer binary on a different server with access to external library installation URLs
- Start maven build process with proxy parameters / settings
- Install external libraries from a local directory
Installation instructions will be provided.
5 Privacy
No personal data is stored.
6 Security
All dependencies to external libraries are defined centrally in the pom.xml file. Ideally - in the case of non-breaking changes - these libraries can be updated by upgrading the version.
7 Contact
- Author of the Request: Meyer, Stefan [smeyer]
- Maintainer: Meyer, Stefan [smeyer]
- Implementation of the feature is done by: Meyer, Stefan [smeyer]
8 Funding
If you are interest in funding this feature, please add your name and institution to this list.
- …
9 Discussion
JourFixe, ILIAS [jourfixe], 19 SEP 2022 : We highly appreciate this suggestion to refactor the build process for the .jar file and accept it for ILIAS 9. Stefan will implement this also as a security bug fix for ILIAS 8.
10 Implementation
The Java server was developed and tested with openjdk-17. The LTS versions 8 and 11 should also be supported.
Test Cases
Test cases checked at 2023-07-21 by Meyer, Stefan [smeyer]
- No changes in community test cases
Approval
Approved at 2023-10-13 by Brauns, Johanna [jbrauns].
Last edited: 18. Oct 2023, 13:07, Meyer, Stefan [smeyer]