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.ContainerRuntime
Supported Container runtimesstatic class
NativeConfig.Debug
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 buildboolean
cleanupServer
Deprecated.Since GraalVM 20.2.0 the native image server has become an experimental feature and is disabled by default.Optional<Boolean>
containerBuild
If this build should be done using a container runtime.Optional<NativeConfig.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.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
If the resulting image should allow VM introspectionString
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
inlineBeforeAnalysis
If-H:+InlineBeforeAnalysis
flag will be added to the native-image runFile
javaHome
The location of the JDKOptional<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
Defines the user country used for building the native executable.Optional<String>
userLanguage
Defines the user language used for building the native executable.
-
Constructor Summary
Constructors Constructor Description NativeConfig()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isContainerBuild()
-
-
-
Field Detail
-
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
@ConfigItem(defaultValue="true") public boolean inlineBeforeAnalysis
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.
-
userLanguage
@ConfigItem(defaultValue="${user.language:}") @ConvertWith(io.quarkus.runtime.configuration.TrimmedStringConverter.class) public Optional<String> userLanguage
Defines the user language used for building the native executable.Defaults to the system one.
-
userCountry
@ConfigItem(defaultValue="${user.country:}") @ConvertWith(io.quarkus.runtime.configuration.TrimmedStringConverter.class) public Optional<String> userCountry
Defines the user country used for building the native executable.Defaults to the system one.
-
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 of file.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}") public String builderImage
The docker image to use to do the image build
-
containerRuntime
@ConfigItem public Optional<NativeConfig.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 public boolean enableVmInspection
If the resulting image should allow VM introspection
-
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.
-
-