A Maven parent POM that centralizes dependency version management for the Fess (Full tExt Search System) ecosystem.
The fess-parent
project serves as the central dependency management hub for all Fess-related libraries and applications. It provides consistent versioning across the entire Fess ecosystem, ensuring compatibility and simplifying maintenance.
Fess is a powerful, user-friendly full-text search server built on top of OpenSearch. It provides a comprehensive search solution with web crawling capabilities, making it easy to search across websites, file systems, and databases.
- Centralized Dependency Management: Manages versions for 50+ dependencies
- Java 21 Support: Built with modern Java standards
- OpenSearch 3: Latest search engine capabilities
- Maven Plugin Management: Pre-configured plugins with optimal settings
- License Management: Automated Apache License header management
- Code Formatting: Consistent code style across projects
Add this as your parent POM in your project's pom.xml
:
<parent>
<groupId>org.codelibs.fess</groupId>
<artifactId>fess-parent</artifactId>
<version>15.2.0-SNAPSHOT</version>
</parent>
- Java 21 or higher
- Maven 3.6 or higher
# Clean and compile
mvn clean compile
# Install to local repository
mvn clean install
# Deploy to remote repository (maintainers only)
mvn clean deploy
# Format code
mvn formatter:format
# Check/add license headers
mvn license:check
mvn license:format
# Generate test coverage reports
mvn clean test jacoco:report
# Run unit tests
mvn test
# Run integration tests
mvn failsafe:integration-test
# Run all tests with coverage
mvn clean verify
This parent POM provides optimized configurations for:
- Compiler Plugin: Java 21 with UTF-8 encoding
- Surefire/Failsafe: Test execution with proper isolation
- License Plugin: Automated Apache license header management
- Formatter Plugin: Consistent code formatting
- GPG Plugin: Artifact signing for releases
- Central Publishing: Maven Central deployment
fess-parent/
├── pom.xml # Main parent POM
├── README.md # This file
└── LICENSE # Apache License 2.0
This project follows semantic versioning and uses the Maven Release Plugin:
- All artifacts are signed with GPG
- Released to Maven Central via Central Publishing Plugin
- Follows the pattern:
major.minor.patch
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch
- Follow existing code style and conventions
-
License Headers: Ensure all Java files have proper Apache license headers
mvn license:format
-
Testing: Add tests for any new functionality
mvn test
- Ensure all tests pass
- Follow conventional commit messages
- Create a pull request with a clear description
- Address any feedback from code review
- Fess: Main search server application
- Fess Crawler: Web crawling engine
- Fess Suggest: Search suggestion system
- Documentation: https://fess.codelibs.org/
- Issues: GitHub Issues
- Discussions: Discussion Forum
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.