mirror of
https://github.com/jlengrand/picocli.git
synced 2026-03-10 08:41:17 +00:00
Fixing broken links to GraalVM repo
This commit is contained in:
committed by
Remko Popma
parent
ca8f76fa43
commit
78da588ae5
@@ -1721,9 +1721,9 @@ The `picocli-codegen` module now includes an annotation processor that instantly
|
||||
|
||||
Use this if you’re interested in:
|
||||
* **Compile time error checking**. The annotation processor shows errors for invalid annotations and attributes immediately when you compile, instead of during testing at runtime, resulting in shorter feedback cycles.
|
||||
* **Graal native images**. The annotation processor generates and updates [Graal configuration](https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md) files under
|
||||
* **Graal native images**. The annotation processor generates and updates [Graal configuration](https://github.com/oracle/graal/blob/master/substratevm/Configuration.md) files under
|
||||
`META-INF/native-image/picocli-generated/$project` during compilation, to be included in the application jar.
|
||||
This includes configuration files for [reflection](https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md), [resources](https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md) and [dynamic proxies](https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md).
|
||||
This includes configuration files for [reflection](https://github.com/oracle/graal/blob/master/substratevm/Reflection.md), [resources](https://github.com/oracle/graal/blob/master/substratevm/Resources.md) and [dynamic proxies](https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md).
|
||||
By embedding these configuration files, your jar is instantly Graal-enabled.
|
||||
The `$project` location is configurable, see [processor options](#picocli-processor-options) below.
|
||||
In most cases no further configuration is needed when generating a native image.
|
||||
@@ -2717,7 +2717,7 @@ This release includes the first cut of an annotation processor that can build a
|
||||
|
||||
Use this if you’re interested in:
|
||||
* **Compile time error checking**. The annotation processor shows errors for invalid annotations and attributes immediately when you compile, instead of during testing at runtime, resulting in shorter feedback cycles.
|
||||
* **Graal native images**. The annotation processor generates [Graal configuration](https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md)
|
||||
* **Graal native images**. The annotation processor generates [Graal configuration](https://github.com/oracle/graal/blob/master/substratevm/Configuration.md)
|
||||
files under `META-INF/native-image/picocli-generated/$project` during compilation, to be included in the application jar.
|
||||
By embedding these configuration files, your jar is instantly Graal-enabled.
|
||||
In most cases no further configuration is needed when generating a native image.
|
||||
@@ -2754,9 +2754,9 @@ This release includes the first cut of an annotation processor that can build a
|
||||
|
||||
Use this if you’re interested in:
|
||||
* **Compile time error checking**. The annotation processor shows errors for invalid annotations and attributes immediately when you compile, instead of during testing at runtime, resulting in shorter feedback cycles.
|
||||
* **Graal native images**. The annotation processor generates and updates [Graal configuration](https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md) files under
|
||||
* **Graal native images**. The annotation processor generates and updates [Graal configuration](https://github.com/oracle/graal/blob/master/substratevm/Configuration.md) files under
|
||||
`META-INF/native-image/picocli-generated/$project` during compilation, to be included in the application jar.
|
||||
This includes configuration files for [reflection](https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md), [resources](https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md) and [dynamic proxies](https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md).
|
||||
This includes configuration files for [reflection](https://github.com/oracle/graal/blob/master/substratevm/Reflection.md), [resources](https://github.com/oracle/graal/blob/master/substratevm/Resources.md) and [dynamic proxies](https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md).
|
||||
By embedding these configuration files, your jar is instantly Graal-enabled.
|
||||
The `$project` location is configurable, see [processor options](#picocli-processor-options) below.
|
||||
In most cases no further configuration is needed when generating a native image.
|
||||
@@ -3128,7 +3128,7 @@ The `picocli-codegen` module now has two new tools, in addition to the existing
|
||||
|
||||
#### ResourceConfigGenerator
|
||||
The GraalVM native-image builder by default will not integrate any of the
|
||||
[classpath resources](https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md) into the image it creates.
|
||||
[classpath resources](https://github.com/oracle/graal/blob/master/substratevm/Resources.md) into the image it creates.
|
||||
|
||||
`ResourceConfigGenerator` generates a JSON String with the resource bundles and other classpath resources
|
||||
that should be included in the Substrate VM native image.
|
||||
@@ -3141,7 +3141,7 @@ This allows picocli-based native image applications to access these resources.
|
||||
#### DynamicProxyConfigGenerator
|
||||
|
||||
Substrate VM doesn't provide machinery for generating and interpreting bytecodes at run time. Therefore all dynamic proxy classes
|
||||
[need to be generated](https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md) at native image build time.
|
||||
[need to be generated](https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md) at native image build time.
|
||||
|
||||
`DynamicProxyConfigGenerator` generates a JSON String with the fully qualified interface names for which
|
||||
dynamic proxy classes should be generated at native image build time.
|
||||
|
||||
@@ -52,12 +52,12 @@ Substrate VM is the name for the runtime components (like the deoptimizer, garba
|
||||
=== Native Image Limitations
|
||||
|
||||
To keep the implementation small and concise, and also to allow aggressive ahead-of-time optimizations, Native Image does not support all features of Java.
|
||||
The full set of https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md[limitations] is documented on the GitHub project.
|
||||
The full set of https://github.com/oracle/graal/blob/master/substratevm/Limitations.md[limitations] is documented on the GitHub project.
|
||||
|
||||
Two limitations are of particular interest:
|
||||
|
||||
* https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md#reflection[reflection]
|
||||
* https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md[resources]
|
||||
* https://github.com/oracle/graal/blob/master/substratevm/Limitations.md#reflection[reflection]
|
||||
* https://github.com/oracle/graal/blob/master/substratevm/Resources.md[resources]
|
||||
|
||||
Basically, to create a self-contained binary, the native image compiler needs to know up-front all the classes of your application, their dependencies, and the resources they use. Reflection and resource bundles often require configuration. We will see an example of this later on.
|
||||
|
||||
@@ -195,7 +195,7 @@ Next, let’s take a look at turning it into a native executable.
|
||||
|
||||
=== Reflection Configuration
|
||||
|
||||
We mentioned earlier that the native image compiler has some limitations: reflection is supported but https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md[requires configuration].
|
||||
We mentioned earlier that the native image compiler has some limitations: reflection is supported but https://github.com/oracle/graal/blob/master/substratevm/Configuration.md[requires configuration].
|
||||
|
||||
This impacts picocli-based applications: at runtime, picocli uses reflection to discover any `@Command`-annotated subcommands, and the `@Option` and `@Parameters`-annotated command options and positional parameters.
|
||||
|
||||
@@ -236,7 +236,7 @@ This quickly becomes quite cumbersome for utilities with many options, but fortu
|
||||
The `picocli-codegen` module includes an annotation processor that can build a model from the picocli annotations at compile time rather than at runtime.
|
||||
|
||||
The annotation processor generates Graal configuration files under `META-INF/native-image/picocli-generated/$project` during compilation, to be included in the application jar.
|
||||
This includes configuration files for https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md[resources] and https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md[dynamic proxies].
|
||||
This includes configuration files for https://github.com/oracle/graal/blob/master/substratevm/Reflection.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/Resources.md[resources] and https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md[dynamic proxies].
|
||||
By embedding these configuration files, your jar is instantly Graal-enabled.
|
||||
In most cases no further configuration is needed when generating a native image.
|
||||
|
||||
|
||||
@@ -132,9 +132,9 @@ The `picocli-codegen` module includes an annotation processor that can build a m
|
||||
Enabling this annotation processor in your project is optional, but strongly recommended. Use this if you’re interested in:
|
||||
|
||||
* **Compile time error checking**. The annotation processor shows errors for invalid annotations and attributes immediately when you compile, instead of during testing at runtime, resulting in shorter feedback cycles.
|
||||
* **<<GraalVM Native Image,GraalVM native images>>**. The annotation processor generates and updates https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md[GraalVM configuration] files under
|
||||
* **<<GraalVM Native Image,GraalVM native images>>**. The annotation processor generates and updates https://github.com/oracle/graal/blob/master/substratevm/Configuration.md[GraalVM configuration] files under
|
||||
`META-INF/native-image/picocli-generated/$project` during compilation, to be included in the application jar.
|
||||
This includes configuration files for https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md[resources] and https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md[dynamic proxies].
|
||||
This includes configuration files for https://github.com/oracle/graal/blob/master/substratevm/Reflection.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/Resources.md[resources] and https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md[dynamic proxies].
|
||||
By embedding these configuration files, your jar is instantly Graal-enabled.
|
||||
In most cases no further configuration is needed when generating a native image.
|
||||
|
||||
@@ -7060,8 +7060,8 @@ ahead-of-time compile Java code to a standalone executable, called a native imag
|
||||
The resulting executable includes the application, the libraries, and the JDK and does not require a separate Java VM to be installed.
|
||||
The generated native image has faster startup time and lower runtime memory overhead compared to a Java VM.
|
||||
|
||||
GraalVM native images have some limitations and require some extra https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md[configuration]
|
||||
to be able to use features like https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md[resources] (including resource bundles) and https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md[dynamic proxies].
|
||||
GraalVM native images have some limitations and require some extra https://github.com/oracle/graal/blob/master/substratevm/Configuration.md[configuration]
|
||||
to be able to use features like https://github.com/oracle/graal/blob/master/substratevm/Reflection.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/Resources.md[resources] (including resource bundles) and https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md[dynamic proxies].
|
||||
|
||||
==== How do I Create a Native Image for my Application?
|
||||
The `picocli-codegen` module contains an annotation processor that generates the necessary configuration files
|
||||
@@ -7078,7 +7078,7 @@ After installing GraalVM and installing the `native-image` generator utility (wi
|
||||
you can then create a native image by invoking the `native-image` command:
|
||||
|
||||
----
|
||||
path/to/native-image -cp picocli-4.2.0.jar --static -jar myapp.jar
|
||||
path/to/native-image -cp picocli-4.5.1.jar --static -jar myapp.jar
|
||||
----
|
||||
|
||||
CAUTION: To create a native image, the compiler toolchain for your platform needs to be installed. See https://www.infoq.com/articles/java-native-cli-graalvm-picocli/[Build Great Native CLI Apps in Java with Graalvm and Picocli] for details.
|
||||
|
||||
@@ -23,7 +23,7 @@ If a tool does not have an annotation processor wrapper (yet), it can be invoked
|
||||
As of picocli version 4.2, this module has three major use cases:
|
||||
|
||||
* **Compile time error checking**. The annotation processor shows errors for invalid annotations and attributes immediately when you compile, instead of during testing at runtime, resulting in shorter feedback cycles.
|
||||
* **GraalVm native images**. To create a GraalVM native image for a picocli application, https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md[configuration] is needed. The `ReflectionConfigGenerator`, `ResourceConfigGenerator` and `DynamicProxyGenerator` tools can generate configuration files for https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md[resources] and https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md[dynamic proxies], respectively.
|
||||
* **GraalVm native images**. To create a GraalVM native image for a picocli application, https://github.com/oracle/graal/blob/master/substratevm/Configuration.md[configuration] is needed. The `ReflectionConfigGenerator`, `ResourceConfigGenerator` and `DynamicProxyGenerator` tools can generate configuration files for https://github.com/oracle/graal/blob/master/substratevm/Reflection.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/Resources.md[resources] and https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md[dynamic proxies], respectively.
|
||||
+
|
||||
The annotation processor embeds these three tools and generates the configuration files under `META-INF/native-image/picocli-generated/$project` during compilation, to be included in the application jar.
|
||||
By embedding these configuration files, your jar is instantly GraalVM-enabled.
|
||||
@@ -39,10 +39,10 @@ To build a GraalVM native image for a picocli-based application, configuration f
|
||||
The `picocli-codegen` module has tools that generate these configuration files for a picocli-based application.
|
||||
The annotation processor in the `picocli-codegen` jar wraps these tools so they are executed automatically during compilation.
|
||||
|
||||
The annotation processor generates and updates https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md[GraalVM configuration]
|
||||
The annotation processor generates and updates https://github.com/oracle/graal/blob/master/substratevm/Configuration.md[GraalVM configuration]
|
||||
files under `META-INF/native-image/picocli-generated/$project` during compilation,
|
||||
to be included in the application jar.
|
||||
This includes configuration files for https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md[resources] and https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md[dynamic proxies].
|
||||
This includes configuration files for https://github.com/oracle/graal/blob/master/substratevm/Reflection.md[reflection], https://github.com/oracle/graal/blob/master/substratevm/Resources.md[resources] and https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md[dynamic proxies].
|
||||
By embedding these configuration files, your jar is instantly GraalVM-enabled.
|
||||
|
||||
In most cases no further configuration is needed when generating a native image.
|
||||
@@ -281,11 +281,11 @@ This directory (or any of its subdirectories) is searched for files with the nam
|
||||
which are then automatically included in the build. Not all of those files must be present.
|
||||
When multiple files with the same name are found, all of them are included.
|
||||
|
||||
See also the SubstrateVM https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md[configuration documentation].
|
||||
See also the SubstrateVM https://github.com/oracle/graal/blob/master/substratevm/Configuration.md[configuration documentation].
|
||||
|
||||
=== ReflectionConfigGenerator
|
||||
|
||||
GraalVM has https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md[limited support for Java reflection]
|
||||
GraalVM has https://github.com/oracle/graal/blob/master/substratevm/Reflection.md[limited support for Java reflection]
|
||||
and it needs to know ahead of time the reflectively accessed program elements.
|
||||
|
||||
`ReflectionConfigGenerator` generates a JSON String with the program elements that will be accessed reflectively in a picocli-based application, in order to compile this application ahead-of-time into a native executable with GraalVM.
|
||||
@@ -301,7 +301,7 @@ See https://picocli.info/picocli-on-graalvm.html[Picocli on GraalVM: Blazingly F
|
||||
|
||||
==== Generating Reflection Configuration During the Build
|
||||
|
||||
_Note that the <<Annotation Processor,annotation processor>> does this automatically. The below is only of interest if you cannot use the annotation processor for some reason._
|
||||
_Note that the <<Generate GraalVM Configurations with the Annotation Processor,annotation processor>> does this automatically. The below is only of interest if you cannot use the annotation processor for some reason._
|
||||
|
||||
The `--output` option can be used to specify the path of the file to write the configuration to.
|
||||
When this option is omitted, the output is sent to standard out.
|
||||
@@ -393,7 +393,7 @@ assemble.dependsOn generateGraalReflectionConfig
|
||||
=== ResourceConfigGenerator
|
||||
|
||||
The GraalVM native-image builder by default will not integrate any of the
|
||||
https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md[classpath resources] into the image it creates.
|
||||
https://github.com/oracle/graal/blob/master/substratevm/Resources.md[classpath resources] into the image it creates.
|
||||
|
||||
`ResourceConfigGenerator` generates a JSON String with the resource bundles and other classpath resources
|
||||
that should be included in the Substrate VM native image.
|
||||
@@ -407,7 +407,7 @@ This allows picocli-based native image applications to access these resources.
|
||||
|
||||
==== Generating Resource Configuration During the Build
|
||||
|
||||
_Note that the <<Annotation Processor,annotation processor>> does this automatically. The below is only of interest if you cannot use the annotation processor for some reason._
|
||||
_Note that the <<Generate GraalVM Configurations with the Annotation Processor,annotation processor>> does this automatically. The below is only of interest if you cannot use the annotation processor for some reason._
|
||||
|
||||
The `--output` option can be used to specify the path of the file to write the configuration to.
|
||||
When this option is omitted, the output is sent to standard out.
|
||||
@@ -501,7 +501,7 @@ assemble.dependsOn generateGraalResourceConfig
|
||||
=== DynamicProxyConfigGenerator
|
||||
|
||||
Substrate VM doesn't provide machinery for generating and interpreting bytecodes at run time. Therefore all dynamic proxy classes
|
||||
https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md[need to be generated] at native image build time.
|
||||
https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md[need to be generated] at native image build time.
|
||||
|
||||
`DynamicProxyConfigGenerator` generates a JSON String with the fully qualified interface names for which
|
||||
dynamic proxy classes should be generated at native image build time.
|
||||
@@ -516,7 +516,7 @@ This allows picocli-based native image applications that use `@Command`-annotate
|
||||
|
||||
==== Generating Dynamic Proxy Configuration During the Build
|
||||
|
||||
_Note that the <<Annotation Processor,annotation processor>> does this automatically. The below is only of interest if you cannot use the annotation processor for some reason._
|
||||
_Note that the <<Generate GraalVM Configurations with the Annotation Processor,annotation processor>> does this automatically. The below is only of interest if you cannot use the annotation processor for some reason._
|
||||
|
||||
The `--output` option can be used to specify the path of the file to write the configuration to.
|
||||
When this option is omitted, the output is sent to standard out.
|
||||
|
||||
@@ -22,7 +22,7 @@ import java.util.concurrent.Callable;
|
||||
* <p>
|
||||
* Substrate VM doesn't provide machinery for generating and interpreting bytecodes at run time.
|
||||
* Therefore all dynamic proxy classes
|
||||
* <a href="https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md">need to be generated</a>
|
||||
* <a href="https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md">need to be generated</a>
|
||||
* at native image build time.
|
||||
* </p><p>
|
||||
* The output of {@code DynamicProxyConfigGenerator} is intended to be passed to the {@code -H:DynamicProxyConfigurationFiles=/path/to/proxy-config.json}
|
||||
@@ -30,7 +30,7 @@ import java.util.concurrent.Callable;
|
||||
* This allows picocli-based native image applications that use {@code @Command}-annotated interfaces with
|
||||
* {@code @Option} and {@code @Parameters}-annotated methods to define options and positional parameters.
|
||||
* </p><p>
|
||||
* Alternatively, the generated <a href="https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md">configuration</a>
|
||||
* Alternatively, the generated <a href="https://github.com/oracle/graal/blob/master/substratevm/Configuration.md">configuration</a>
|
||||
* files can be supplied to the {@code native-image} tool by placing them in a
|
||||
* {@code META-INF/native-image/} directory on the class path, for example, in a JAR file used in the image build.
|
||||
* This directory (or any of its subdirectories) is searched for files with the names {@code jni-config.json},
|
||||
@@ -47,7 +47,7 @@ public class DynamicProxyConfigGenerator {
|
||||
description = {"Generates a JSON file with the interface names to generate dynamic proxy classes for in the native image.",
|
||||
"The generated JSON file can be passed to the `-H:DynamicProxyConfigurationFiles=/path/to/proxy-config.json` " +
|
||||
"option of the `native-image` GraalVM utility.",
|
||||
"See https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md"},
|
||||
"See https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md"},
|
||||
exitCodeListHeading = "%nExit Codes (if enabled with `--exit`)%n",
|
||||
exitCodeList = {
|
||||
"0:Successful program execution.",
|
||||
@@ -110,7 +110,7 @@ public class DynamicProxyConfigGenerator {
|
||||
*
|
||||
* @param specs one or more {@code CommandSpec} objects to inspect for dynamic proxies
|
||||
* @param interfaceClasses other (non-{@code @Command}) fully qualified interface names to generate dynamic proxy classes for
|
||||
* @return a JSON String in the <a href="https://github.com/oracle/graal/blob/master/substratevm/DYNAMIC_PROXY.md#manual-configuration">format</a>
|
||||
* @return a JSON String in the <a href="https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md#manual-configuration">format</a>
|
||||
* required by the {@code -H:DynamicProxyConfigurationFiles=/path/to/proxy-config.json} option of the GraalVM {@code native-image} utility.
|
||||
*/
|
||||
public static String generateProxyConfig(CommandSpec[] specs, String[] interfaceClasses) {
|
||||
|
||||
@@ -47,14 +47,14 @@ import java.util.concurrent.Callable;
|
||||
* reflectively in a picocli-based application, in order to compile this application ahead-of-time into a native
|
||||
* executable with GraalVM.
|
||||
* <p>
|
||||
* GraalVM has <a href="https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md">limited support for Java
|
||||
* GraalVM has <a href="https://github.com/oracle/graal/blob/master/substratevm/Reflection.md">limited support for Java
|
||||
* reflection</a> and it needs to know ahead of time the reflectively accessed program elements.
|
||||
* </p><p>
|
||||
* The output of {@code ReflectionConfigGenerator} is intended to be passed to the {@code -H:ReflectionConfigurationFiles=/path/to/reflect-config.json}
|
||||
* option of the {@code native-image} <a href="https://www.graalvm.org/docs/reference-manual/aot-compilation/">GraalVM utility</a>.
|
||||
* This allows picocli-based applications to be compiled to a native image.
|
||||
* </p><p>
|
||||
* Alternatively, the generated <a href="https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md">configuration</a>
|
||||
* Alternatively, the generated <a href="https://github.com/oracle/graal/blob/master/substratevm/Configuration.md">configuration</a>
|
||||
* files can be supplied to the {@code native-image} tool by placing them in a
|
||||
* {@code META-INF/native-image/} directory on the class path, for example, in a JAR file used in the image build.
|
||||
* This directory (or any of its subdirectories) is searched for files with the names {@code jni-config.json},
|
||||
@@ -84,7 +84,7 @@ public class ReflectionConfigGenerator {
|
||||
"accessed reflectively for the specified `@Command` classes.",
|
||||
"The generated JSON file can be passed to the `-H:ReflectionConfigurationFiles=/path/to/reflect-config.json` " +
|
||||
"option of the `native-image` GraalVM utility.",
|
||||
"See https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md"},
|
||||
"See https://github.com/oracle/graal/blob/master/substratevm/Reflection.md"},
|
||||
exitCodeListHeading = "%nExit Codes (if enabled with `--exit`)%n",
|
||||
exitCodeList = {
|
||||
"0:Successful program execution.",
|
||||
@@ -143,7 +143,7 @@ public class ReflectionConfigGenerator {
|
||||
* {@code CommandSpec} objects.
|
||||
*
|
||||
* @param specs one or more {@code CommandSpec} objects to inspect
|
||||
* @return a JSON String in the <a href="https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md#manual-configuration">format</a>
|
||||
* @return a JSON String in the <a href="https://github.com/oracle/graal/blob/master/substratevm/Reflection.md#manual-configuration">format</a>
|
||||
* required by the {@code -H:ReflectionConfigurationFiles=/path/to/reflect-config.json} option of the GraalVM {@code native-image} utility.
|
||||
* @throws NoSuchFieldException if a problem occurs while processing the specified specs
|
||||
* @throws IllegalAccessException if a problem occurs while processing the specified specs
|
||||
|
||||
@@ -20,13 +20,13 @@ import java.util.concurrent.Callable;
|
||||
* that should be included in the Substrate VM native image.
|
||||
* <p>
|
||||
* The GraalVM native-image builder by default will not integrate any of the
|
||||
* <a href="https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md">classpath resources</a> into the image it creates.
|
||||
* <a href="https://github.com/oracle/graal/blob/master/substratevm/Resources.md">classpath resources</a> into the image it creates.
|
||||
* </p><p>
|
||||
* The output of {@code ResourceConfigGenerator} is intended to be passed to the {@code -H:ResourceConfigurationFiles=/path/to/resource-config.json}
|
||||
* option of the {@code native-image} <a href="https://www.graalvm.org/docs/reference-manual/aot-compilation/">GraalVM utility</a>.
|
||||
* This allows picocli-based native image applications to access these resources.
|
||||
* </p><p>
|
||||
* Alternatively, the generated <a href="https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md">configuration</a>
|
||||
* Alternatively, the generated <a href="https://github.com/oracle/graal/blob/master/substratevm/Configuration.md">configuration</a>
|
||||
* files can be supplied to the {@code native-image} tool by placing them in a
|
||||
* {@code META-INF/native-image/} directory on the class path, for example, in a JAR file used in the image build.
|
||||
* This directory (or any of its subdirectories) is searched for files with the names {@code jni-config.json},
|
||||
@@ -43,7 +43,7 @@ public class ResourceConfigGenerator {
|
||||
description = {"Generates a JSON file with the resources and resource bundles to include in the native image.",
|
||||
"The generated JSON file can be passed to the `-H:ResourceConfigurationFiles=/path/to/resource-config.json` " +
|
||||
"option of the `native-image` GraalVM utility.",
|
||||
"See https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md"},
|
||||
"See https://github.com/oracle/graal/blob/master/substratevm/Resources.md"},
|
||||
exitCodeListHeading = "%nExit Codes (if enabled with `--exit`)%n",
|
||||
exitCodeList = {
|
||||
"0:Successful program execution.",
|
||||
@@ -111,7 +111,7 @@ public class ResourceConfigGenerator {
|
||||
* @param specs one or more {@code CommandSpec} objects to inspect for resource bundles
|
||||
* @param bundles base names of additional resource bundles to be included in the image
|
||||
* @param resourceRegex one or more Java regular expressions that match resource(s) to be included in the image
|
||||
* @return a JSON String in the <a href="https://github.com/oracle/graal/blob/master/substratevm/RESOURCES.md#resource-bundles-on-substrate-vm">format</a>
|
||||
* @return a JSON String in the <a href="https://github.com/oracle/graal/blob/master/substratevm/Resources.md#resource-bundles-on-substrate-vm">format</a>
|
||||
* required by the {@code -H:ResourceConfigurationFiles=/path/to/resource-config.json} option of the GraalVM {@code native-image} utility.
|
||||
*/
|
||||
public static String generateResourceConfig(CommandSpec[] specs, String[] bundles, String[] resourceRegex) {
|
||||
|
||||
Reference in New Issue
Block a user