Package io.quarkus.deployment.pkg
Class NativeConfig
- java.lang.Object
-
- io.quarkus.deployment.pkg.NativeConfig
-
@ConfigRoot(phase=BUILD_TIME) public class NativeConfig extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
NativeConfig.BuilderImageProvider
Supported Builder Image providers/distributionsstatic class
NativeConfig.Compression
static class
NativeConfig.Debug
static class
NativeConfig.MonitoringOption
static class
NativeConfig.ResourcesConfig
-
Field Summary
Fields Modifier and Type Field Description boolean
addAllCharsets
If all character sets should be added to the native image.Optional<List<String>>
additionalBuildArgs
Comma-separated, additional arguments to pass to the build process.boolean
autoServiceLoaderRegistration
If all META-INF/services entries should be automatically registeredString
builderImage
The docker image to use to do the image build.boolean
cleanupServer
Deprecated.Since GraalVM 20.2.0 the native image server has become an experimental feature and is disabled by default.NativeConfig.Compression
compression
Configure native executable compression using UPX.Optional<Boolean>
containerBuild
If this build should be done using a container runtime.Optional<ContainerRuntimeUtil.ContainerRuntime>
containerRuntime
The container runtime (e.g.Optional<List<String>>
containerRuntimeOptions
Options to pass to the container runtimeNativeConfig.Debug
debug
Debugging options.boolean
debugBuildProcess
If the native image build should wait for a debugger to be attached before running.static String
DEFAULT_GRAALVM_BUILDER_IMAGE
static String
DEFAULT_MANDREL_BUILDER_IMAGE
boolean
dumpProxies
If the bytecode of all proxies should be dumped for inspectionboolean
enableAllSecurityServices
Deprecated.--enable-all-security-services
was removed in GraalVM 21.1 https://github.com/oracle/graal/pull/3258boolean
enableDashboardDump
Generate the report files for GraalVM Dashboard.boolean
enableFallbackImages
If a JVM based 'fallback image' should be created if native image fails.boolean
enableHttpsUrlHandler
If the HTTPS url handler should be enabled, allowing you to do URL.openConnection() for HTTPS URLsboolean
enableHttpUrlHandler
If the HTTP url handler should be enabled, allowing you to do URL.openConnection() for HTTP URLsboolean
enableIsolates
If isolates should be enabledboolean
enableJni
Deprecated.JNI is always enabled starting from GraalVM 19.3.1.boolean
enableReports
If the reports on call paths and included packages/classes/methods should be generatedboolean
enableServer
Deprecated.This used to be the default prior to GraalVM 20.2.0 and this configuration item was used to disable it as it was not stable.boolean
enableVmInspection
Deprecated.Usequarkus.native.monitoring
instead.String
fileEncoding
Defines the file encoding as in-Dfile.encoding=...
.boolean
fullStackTraces
If full stack traces are enabled in the resulting imageOptional<String>
graalvmHome
The location of the Graal distributionboolean
headless
The default value for java.awt.headless JVM option.boolean
inlineBeforeAnalysis
Deprecated.inlineBeforeAnalysis is always enabled starting from GraalVM 21.3.File
javaHome
The location of the JDKOptional<List<NativeConfig.MonitoringOption>>
monitoring
Enable monitoring options that allow the VM to be inspected at run time.Optional<String>
nativeImageXmx
The maximum Java heap to be used during the native image generationboolean
publishDebugBuildProcessPort
If the debug port should be published when building with docker and debug-build-process is trueboolean
remoteContainerBuild
If this build is done using a remote docker daemon.boolean
reportErrorsAtRuntime
If errors should be reported at runtime.boolean
reportExceptionStackTraces
If exceptions should be reported with a full stack traceNativeConfig.ResourcesConfig
resources
Build time configuration options for resources inclusion in the native executable.boolean
reuseExisting
Don't build a native image if it already exists.Optional<String>
userCountry
Deprecated.Use the global quarkus.default-locale.Optional<String>
userLanguage
Deprecated.Use the global quarkus.default-locale.
-
Constructor Summary
Constructors Constructor Description NativeConfig()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getEffectiveBuilderImage()
boolean
isExplicitContainerBuild()
-
-
-
Field Detail
-
DEFAULT_GRAALVM_BUILDER_IMAGE
public static final String DEFAULT_GRAALVM_BUILDER_IMAGE
- See Also:
- Constant Field Values
-
DEFAULT_MANDREL_BUILDER_IMAGE
public static final String DEFAULT_MANDREL_BUILDER_IMAGE
- See Also:
- Constant Field Values
-
additionalBuildArgs
@ConfigItem public Optional<List<String>> additionalBuildArgs
Comma-separated, additional arguments to pass to the build process. If an argument includes the,
symbol, it needs to be escaped, e.g.\\,
-
enableHttpUrlHandler
@ConfigItem(defaultValue="true") public boolean enableHttpUrlHandler
If the HTTP url handler should be enabled, allowing you to do URL.openConnection() for HTTP URLs
-
enableHttpsUrlHandler
@ConfigItem public boolean enableHttpsUrlHandler
If the HTTPS url handler should be enabled, allowing you to do URL.openConnection() for HTTPS URLs
-
enableAllSecurityServices
@ConfigItem @Deprecated public boolean enableAllSecurityServices
Deprecated.--enable-all-security-services
was removed in GraalVM 21.1 https://github.com/oracle/graal/pull/3258If all security services should be added to the native image
-
inlineBeforeAnalysis
@Deprecated @ConfigItem(defaultValue="true") public boolean inlineBeforeAnalysis
Deprecated.inlineBeforeAnalysis is always enabled starting from GraalVM 21.3.If-H:+InlineBeforeAnalysis
flag will be added to the native-image run
-
enableJni
@Deprecated @ConfigItem(defaultValue="true") public boolean enableJni
Deprecated.JNI is always enabled starting from GraalVM 19.3.1.
-
headless
@ConfigItem(defaultValue="true") public boolean headless
The default value for java.awt.headless JVM option. Switching this option affects linking of awt libraries.
-
userLanguage
@ConfigItem @ConvertWith(io.quarkus.runtime.configuration.TrimmedStringConverter.class) @Deprecated public Optional<String> userLanguage
Deprecated.Use the global quarkus.default-locale.Defines the user language used for building the native executable. It also serves as the default Locale language for the native executable application runtime. e.g. en or cs as defined by IETF BCP 47 language tags.
-
userCountry
@ConfigItem @ConvertWith(io.quarkus.runtime.configuration.TrimmedStringConverter.class) @Deprecated public Optional<String> userCountry
Deprecated.Use the global quarkus.default-locale.Defines the user country used for building the native executable. It also serves as the default Locale country for the native executable application runtime. e.g. US or FR as defined by ISO 3166-1 alpha-2 codes.
-
fileEncoding
@ConfigItem(defaultValue="UTF-8") @ConvertWith(io.quarkus.runtime.configuration.TrimmedStringConverter.class) public String fileEncoding
Defines the file encoding as in-Dfile.encoding=...
. Native image runtime uses the host's (i.e. build time) value offile.encoding
system property. We intentionally default this to UTF-8 to avoid platform specific defaults to be picked up which can then result in inconsistent behavior in the generated native executable.
-
addAllCharsets
@ConfigItem public boolean addAllCharsets
If all character sets should be added to the native image. This increases image size
-
graalvmHome
@ConfigItem(defaultValue="${GRAALVM_HOME:}") public Optional<String> graalvmHome
The location of the Graal distribution
-
javaHome
@ConfigItem(defaultValue="${java.home}") public File javaHome
The location of the JDK
-
nativeImageXmx
@ConfigItem public Optional<String> nativeImageXmx
The maximum Java heap to be used during the native image generation
-
debugBuildProcess
@ConfigItem public boolean debugBuildProcess
If the native image build should wait for a debugger to be attached before running. This is an advanced option and is generally only intended for those familiar with GraalVM internals
-
publishDebugBuildProcessPort
@ConfigItem(defaultValue="true") public boolean publishDebugBuildProcessPort
If the debug port should be published when building with docker and debug-build-process is true
-
cleanupServer
@Deprecated @ConfigItem public boolean cleanupServer
Deprecated.Since GraalVM 20.2.0 the native image server has become an experimental feature and is disabled by default.If the native image server should be restarted.
-
enableIsolates
@ConfigItem(defaultValue="true") public boolean enableIsolates
If isolates should be enabled
-
enableFallbackImages
@ConfigItem public boolean enableFallbackImages
If a JVM based 'fallback image' should be created if native image fails. This is not recommended, as this is functionally the same as just running the application in a JVM
-
enableServer
@Deprecated @ConfigItem public boolean enableServer
Deprecated.This used to be the default prior to GraalVM 20.2.0 and this configuration item was used to disable it as it was not stable. Since GraalVM 20.2.0 the native image server has become an experimental feature.If the native image server should be used. This can speed up compilation but can result in changes not always being picked up due to cache invalidation not working 100%
-
autoServiceLoaderRegistration
@ConfigItem public boolean autoServiceLoaderRegistration
If all META-INF/services entries should be automatically registered
-
dumpProxies
@ConfigItem public boolean dumpProxies
If the bytecode of all proxies should be dumped for inspection
-
containerBuild
@ConfigItem public Optional<Boolean> containerBuild
If this build should be done using a container runtime. Unless container-runtime is also set, docker will be used by default. If docker is not available or is an alias to podman, podman will be used instead as the default.
-
remoteContainerBuild
@ConfigItem public boolean remoteContainerBuild
If this build is done using a remote docker daemon.
-
builderImage
@ConfigItem(defaultValue="${platform.quarkus.native.builder-image}", defaultValueDocumentation="mandrel") public String builderImage
The docker image to use to do the image build. It can be one of `graalvm`, `mandrel`, or the full image path, e.g.quay.io/quarkus/ubi-quarkus-mandrel-builder-image:22.3-java17
.
-
containerRuntime
@ConfigItem public Optional<ContainerRuntimeUtil.ContainerRuntime> containerRuntime
The container runtime (e.g. docker) that is used to do an image based build. If this is set then a container build is always done.
-
containerRuntimeOptions
@ConfigItem public Optional<List<String>> containerRuntimeOptions
Options to pass to the container runtime
-
enableVmInspection
@ConfigItem @Deprecated public boolean enableVmInspection
Deprecated.Usequarkus.native.monitoring
instead.If the resulting image should allow VM introspection.
-
monitoring
@ConfigItem public Optional<List<NativeConfig.MonitoringOption>> monitoring
Enable monitoring options that allow the VM to be inspected at run time.
-
fullStackTraces
@ConfigItem(defaultValue="true") public boolean fullStackTraces
If full stack traces are enabled in the resulting image
-
enableReports
@ConfigItem public boolean enableReports
If the reports on call paths and included packages/classes/methods should be generated
-
reportExceptionStackTraces
@ConfigItem(defaultValue="true") public boolean reportExceptionStackTraces
If exceptions should be reported with a full stack trace
-
reportErrorsAtRuntime
@ConfigItem public boolean reportErrorsAtRuntime
If errors should be reported at runtime. This is a more relaxed setting, however it is not recommended as it means your application may fail at runtime if an unsupported feature is used by accident.
-
reuseExisting
@ConfigItem(defaultValue="false") public boolean reuseExisting
Don't build a native image if it already exists. This is useful if you have already built an image and you want to use Quarkus to deploy it somewhere. Note that this is not able to detect if the existing image is outdated, if you have modified source or config and want a new image you must not use this flag.
-
resources
@ConfigItem public NativeConfig.ResourcesConfig resources
Build time configuration options for resources inclusion in the native executable.
-
debug
@ConfigItem public NativeConfig.Debug debug
Debugging options.
-
enableDashboardDump
@ConfigItem public boolean enableDashboardDump
Generate the report files for GraalVM Dashboard.
-
compression
@ConfigItem public NativeConfig.Compression compression
Configure native executable compression using UPX.
-
-
Method Detail
-
isExplicitContainerBuild
public boolean isExplicitContainerBuild()
-
getEffectiveBuilderImage
public String getEffectiveBuilderImage()
-
-