Core Java packages
JVM
Fedora allows multiple Java Virtual Machines (JVMs) to be packaged independently. Java packages should not directly depend on any particulat JVM, but instead require one of three virtual JVM packages depending of what Java funtionality is required.
java-headless
-
This package provides a working Java Runtime Environment (JRE) with some functionality disabled. Graphics and audio support may be unavailable in this case.
java-headless
provides functionality that is enough for most of packages and avoids pulling in a number of graphics and audio libraries as dependencies. Requirement onjava-headless
is appropriate for most of Java packages. java
-
Includes the same base functionality as
java-headless
, but also implements audio and graphics subsystems. Packages should requirejava
if they need some functionality from these subsystems, for example creating GUI using AWT library. java-devel
-
Provides full Java Development Kit (JDK). In most cases only packages related to Java development should have runtime dependencies on
java-devel
. Runtime packages should requirejava-headless
orjava
. Some packages not strictly related to java development need access to libraries included with JDK, but not with JRE (for exampletools.jar
). That’s one of few cases where requiring java-devel may be necessary.
Packages that require minimal Java standard version can add versioned
dependencies on one of virtual packages providing Java environment.
For example if packages depending on functionality of JDK 8 can
require java-headless >= 1:1.8.0
.
Epoch in versions of JVM packages
For compatibility with JPackage project packages providing Java 1.6.0
or later use epoch equal to |
Java Packages Tools
Java Packages Tools are packaged as severas binary RPM packages
maven-local
-
This package provides a complete environment which is required to build Java packages using Apache Maven build system. This includes a default system version of Java Development Kit (JDK), Maven, a number of Maven plugins commonly used to build packages, various macros and utlilty tools.
maven-local
is usually declared as build dependency of Maven packages. gradle-local
-
Similairly to
maven-local
, this package provides an environment required to build Java packages using Gradle as a build tool. ivy-local
-
Analogously to
maven-local
andgradle-local
, this package provides an environment required to build Java packages using Apache Ivy as dependency manager. javapackages-local
-
Package providing a basic environment necessary to geterate and install metadata for system artifact repository.
javapackages-tools
-
Package owning basic Java directories and providing runtime support for Java packages. The great majority of Java packages depend on
javapackages-tools
.