Java libraries created or extended (-Plus suffix) by SPeCS research group
This repository contains multiple Java libraries organized as individual Gradle projects. Each library is self-contained with its own build.gradle and settings.gradle files.
- Java 17 or higher - All projects are configured to use Java 17
- Gradle - Build automation tool
To build a specific library, navigate to its directory and run:
cd <project-name>
./gradle buildFor example, to build SpecsUtils:
cd SpecsUtils
./gradle buildCommon tasks you can run for each project:
./gradle build- Compile, test, and package the project./gradle test- Run unit tests./gradle jar- Create JAR file./gradle sourcesJar- Create sources JAR file./gradle clean- Clean build artifacts./gradle tasks- List all available tasks
Projects use:
- Maven Central for external dependencies
- JUnit 4 for testing
- Inter-project dependencies where needed (e.g.,
:SpecsUtils,:CommonsLangPlus)
While you can use any IDE that supports Gradle projects, here are some recommendations:
- IntelliJ IDEA: Import the repository root, and it will automatically detect all Gradle subprojects
- VS Code: Use the Java Extension Pack which includes Gradle support
- Eclipse: Use the Gradle integration plugin and import existing Gradle projects
- Clone this repository
- Open your IDE
- Import the root directory as a Gradle project
- Your IDE should automatically detect and configure all subprojects
The repository includes the following libraries:
- AntTasks - Custom Ant tasks
- AsmParser - Assembly parsing utilities
- CommonsCompressPlus - Extended Apache Commons Compress
- CommonsLangPlus - Extended Apache Commons Lang
- GearmanPlus - Extended Gearman client
- GitlabPlus - GitLab API integration
- GitPlus - Git utilities
- Gprofer - Profiling utilities
- GsonPlus - Extended Google Gson
- GuiHelper - GUI utility classes
- JacksonPlus - Extended Jackson JSON processing
- JadxPlus - Extended JADX decompiler
- JavaGenerator - Java code generation utilities
- jOptions - Command-line options parser
- JsEngine - JavaScript engine integration (GraalVM)
- LogbackPlus - Extended Logback logging
- MvelPlus - Extended MVEL expression language
- SlackPlus - Slack API integration
- SpecsHWUtils - Hardware utilities
- SpecsUtils - Core utilities library
- SymjaPlus - Extended Symja symbolic math
- tdrcLibrary - TDRC's library utilities
- XStreamPlus - Extended XStream XML processing
When adding new features or fixing bugs:
- Make your changes in the appropriate project directory
- Run
./gradle buildto ensure everything compiles and tests pass - Follow the existing code style and conventions
- Add tests for new functionality
This project was previously built using Eclipse, Ivy, and Ant. All build configuration has been migrated to Gradle for better dependency management and build automation. There might be some old configuration files (ivysettings.xml, .classpath, .project). These may be kept for historical reference but are no longer used in the build process.