A Maven plugin that makes JAR files directly executable on Unix-like systems by prepending a shell script.
really-executable-jar-maven-plugin is a Maven plugin that prepends a shell script to Java JAR files, making them directly executable on Unix-like systems without needing to invoke the Java runtime manually. It solves the problem of cumbersome JAR execution by allowing users to run JARs as simple binaries (e.g., `./app.jar`). The plugin integrates seamlessly into Maven builds, transforming packaged JARs into user-friendly executables.
Java developers and DevOps engineers who build and distribute command-line applications or services as JAR files and want to simplify deployment and execution on Unix-like systems.
Developers choose this plugin because it eliminates the need for wrapper scripts or manual Java invocations, reducing friction in running JAR-based applications. Its lightweight, Maven-native approach and customizable options make it a reliable tool for production-ready packaging.
maven plugin for making chmod +x jar files
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Makes JAR files directly executable on Unix-like systems with a simple chmod +x command, eliminating the need for manual java -jar invocations, as described in the plugin's core functionality.
Allows configuration of Java flags (e.g., -Xmx1G) and custom shell scripts through plugin parameters, enabling tailored startup without external wrappers, as shown in the configuration example.
Supports targeting specific JARs, classifiers like 'shaded', and non-JAR formats such as ZIP via inputFile, classifier, and allowOtherTypes parameters, offering versatility in build outputs.
Includes support for ZIP64 for large archives and handles multi-artifact builds, with improvements noted in version 2.1.0 changes, ensuring reliability for deployment scenarios.
While advertised as cross-platform, the primary design is for Unix-like systems, and Windows execution may rely on shell dependencies or additional setup, making it less seamless.
Version history shows significant updates, such as dropping JDK7 support in 2.0.0, which could disrupt existing builds if not carefully managed during upgrades.
Relies heavily on a single blog post for introduction, and the README is brief, lacking detailed examples or troubleshooting guides for advanced use cases.
Prepending a shell script to JAR files introduces a small overhead in execution compared to native binary packaging solutions, and it doesn't optimize startup time like GraalVM.