diff --git a/.github/actions/prepare-environment/action.yml b/.github/actions/prepare-environment/action.yml index 0461ea5ca..e23595052 100644 --- a/.github/actions/prepare-environment/action.yml +++ b/.github/actions/prepare-environment/action.yml @@ -22,13 +22,18 @@ inputs: runs: using: "composite" steps: + - name: "🔧 Setup Java 11" + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '11' + if: runner.os == 'Windows' - name: "🔧 Install GraalVM (JDK${{ inputs.java-version }})" uses: graalvm/setup-graalvm@main with: - components: 'native-image' - github-token: ${{ inputs.github-token }} java-version: ${{ inputs.java-version }} distribution: 'graalvm' + github-token: ${{ inputs.github-token }} - name: "🔒 Configure push access" if: ${{ inputs.push-access == '1' }} shell: "bash" diff --git a/.github/workflows/deploy-documentation.yml b/.github/workflows/deploy-documentation.yml index 1943d3024..735677aa0 100644 --- a/.github/workflows/deploy-documentation.yml +++ b/.github/workflows/deploy-documentation.yml @@ -22,7 +22,7 @@ jobs: os: [ ubuntu-20.04 ] steps: - name: "☁ Checkout repository" - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ssh-key: "${{ secrets.SSH_PRIVATE_KEY }}" - name: "🔧 Prepare environment" diff --git a/.github/workflows/deploy-snapshots.yml b/.github/workflows/deploy-snapshots.yml index c80f78384..5934f1529 100644 --- a/.github/workflows/deploy-snapshots.yml +++ b/.github/workflows/deploy-snapshots.yml @@ -24,7 +24,7 @@ jobs: os: [ ubuntu-22.04 ] steps: - name: "☁ Checkout repository" - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ssh-key: "${{ secrets.SSH_PRIVATE_KEY }}" - name: "🔧 Prepare environment" diff --git a/.github/workflows/test-graalvm-metadata.yml b/.github/workflows/test-graalvm-metadata.yml index 05a9a3f49..ba6be100a 100644 --- a/.github/workflows/test-graalvm-metadata.yml +++ b/.github/workflows/test-graalvm-metadata.yml @@ -4,12 +4,12 @@ on: push: paths: - 'common/graalvm-reachability-metadata/**' - - '.github/actions/prepare-environment' + - '.github/actions/**' - '.github/workflows/test-graalvm-metadata.yml' pull_request: paths: - 'common/graalvm-reachability-metadata/**' - - '.github/actions/prepare-environment' + - '.github/actions/**' - '.github/workflows/test-graalvm-metadata.yml' workflow_dispatch: @@ -28,7 +28,7 @@ jobs: os: [ ubuntu-20.04 ] steps: - name: "☁️ Checkout repository" - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: "🔧 Prepare environment" uses: ./.github/actions/prepare-environment with: @@ -40,7 +40,7 @@ jobs: run: ./gradlew :graalvm-reachability-metadata:test - name: "📜 Upload tests results" if: always() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: tests-results path: common/graalvm-reachability-metadata/build/reports/tests/ diff --git a/.github/workflows/test-junit-platform-native.yml b/.github/workflows/test-junit-platform-native.yml index ea98e338b..aeb602b2f 100644 --- a/.github/workflows/test-junit-platform-native.yml +++ b/.github/workflows/test-junit-platform-native.yml @@ -4,12 +4,12 @@ on: push: paths: - 'common/junit-platform-native/**' - - '.github/actions/prepare-environment' + - '.github/actions/**' - '.github/workflows/test-junit-platform-native.yml' pull_request: paths: - 'common/junit-platform-native/**' - - '.github/actions/prepare-environment' + - '.github/actions/**' - '.github/workflows/test-junit-platform-native.yml' workflow_dispatch: @@ -28,7 +28,7 @@ jobs: os: [ ubuntu-20.04 ] steps: - name: "☁️ Checkout repository" - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: "🔧 Prepare environment" uses: ./.github/actions/prepare-environment with: @@ -42,7 +42,7 @@ jobs: run: ./gradlew :junit-platform-native:nativeTest - name: "📜 Upload tests results" if: always() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: tests-results path: common/junit-platform-native/build/reports/tests/ diff --git a/.github/workflows/test-native-gradle-plugin.yml b/.github/workflows/test-native-gradle-plugin.yml index 2035f2ee5..822ceb21f 100644 --- a/.github/workflows/test-native-gradle-plugin.yml +++ b/.github/workflows/test-native-gradle-plugin.yml @@ -6,14 +6,14 @@ on: - 'native-gradle-plugin/**' - 'samples/**' - 'common/**' - - '.github/actions/prepare-environment' + - '.github/actions/**' - '.github/workflows/test-native-gradle-plugin.yml' pull_request: paths: - 'native-gradle-plugin/**' - 'samples/**' - 'common/**' - - '.github/actions/prepare-environment' + - '.github/actions/**' - '.github/workflows/test-native-gradle-plugin.yml' workflow_dispatch: @@ -32,7 +32,7 @@ jobs: os: [ ubuntu-20.04 ] steps: - name: "☁️ Checkout repository" - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: "🔧 Prepare environment" uses: ./.github/actions/prepare-environment with: @@ -41,7 +41,7 @@ jobs: - name: "❓ Unit tests and inspections" run: ./gradlew :native-gradle-plugin:test :native-gradle-plugin:inspections - name: "📜 Upload unit test results" - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v3 with: name: unit-tests-results path: native-gradle-plugin/build/reports/tests/test/ @@ -57,24 +57,24 @@ jobs: os: [ ubuntu-20.04 ] steps: - name: "☁️ Checkout repository" - uses: actions/checkout@v2 - - uses: ./.github/actions/prepare-environment + uses: actions/checkout@v4 + - name: "🔧 Prepare environment" + uses: ./.github/actions/prepare-environment with: java-version: ${{ matrix.java-version }} github-token: ${{ secrets.GITHUB_TOKEN }} - name: "🔧 Install GraalVM (dev)" uses: graalvm/setup-graalvm@main with: - components: 'native-image' - github-token: ${{ inputs.github-token }} java-version: 'dev' distribution: 'graalvm' + github-token: ${{ inputs.github-token }} set-java-home: 'false' - name: "❓ Check and test the plugin" run: ./gradlew :native-gradle-plugin:functionalTest - name: "📜 Upload functional tests results" if: always() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: functional-tests-results-graalvm-dev path: native-gradle-plugin/build/reports/tests/functionalTest/ @@ -92,8 +92,9 @@ jobs: os: [ ubuntu-20.04 ] steps: - name: "☁️ Checkout repository" - uses: actions/checkout@v3 - - uses: ./.github/actions/prepare-environment + uses: actions/checkout@v4 + - name: "🔧 Prepare environment" + uses: ./.github/actions/prepare-environment with: java-version: ${{ matrix.java-version }} github-token: ${{ secrets.GITHUB_TOKEN }} @@ -103,14 +104,12 @@ jobs: run: ./gradlew :native-gradle-plugin:configCacheFunctionalTest -DgradleVersion=${{ matrix.gradle-config-cache-version }} - name: "📜 Upload functional tests results" if: always() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: functional-tests-results-${{ matrix.gradle-version }} path: native-gradle-plugin/build/reports/tests/functionalTest/ functional-testing-gradle-plugin-windows: name: "Windows Gradle plugin functional testing" - if: ${{ false }} - # Disabled due to https://github.com/gradle/native-platform/issues/274 runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -119,8 +118,9 @@ jobs: os: [ windows-latest ] steps: - name: "☁️ Checkout repository" - uses: actions/checkout@v3 - - uses: ./.github/actions/prepare-environment + uses: actions/checkout@v4 + - name: "🔧 Prepare environment" + uses: ./.github/actions/prepare-environment with: java-version: ${{ matrix.java-version }} github-token: ${{ secrets.GITHUB_TOKEN }} @@ -128,7 +128,7 @@ jobs: run: ./gradlew :native-gradle-plugin:functionalTest --no-daemon --fail-fast - name: "📜 Upload tests results" if: always() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: windows-gradle-functional-tests-results path: native-gradle-plugin/build/reports/tests/ diff --git a/.github/workflows/test-native-maven-plugin.yml b/.github/workflows/test-native-maven-plugin.yml index e8953121d..572f65b6a 100644 --- a/.github/workflows/test-native-maven-plugin.yml +++ b/.github/workflows/test-native-maven-plugin.yml @@ -6,14 +6,14 @@ on: - 'native-maven-plugin/**' - 'samples/**' - 'common/**' - - '.github/actions/prepare-environment' + - '.github/actions/**' - '.github/workflows/test-native-maven-plugin.yml' pull_request: paths: - 'native-maven-plugin/**' - 'samples/**' - 'common/**' - - '.github/actions/prepare-environment' + - '.github/actions/**' - '.github/workflows/test-native-maven-plugin.yml' workflow_dispatch: @@ -32,8 +32,9 @@ jobs: os: [ ubuntu-20.04 ] steps: - name: "☁️ Checkout repository" - uses: actions/checkout@v3 - - uses: ./.github/actions/prepare-environment + uses: actions/checkout@v4 + - name: "🔧 Prepare environment" + uses: ./.github/actions/prepare-environment with: java-version: ${{ matrix.java-version }} github-token: ${{ secrets.GITHUB_TOKEN }} @@ -41,14 +42,12 @@ jobs: run: ./gradlew :native-maven-plugin:check --no-daemon - name: "📜 Upload unit test results" if: always() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: maven-functional-tests-results-${{ matrix.os }} path: native-maven-plugin/build/reports/tests/ test-native-maven-plugin-windows: name: "Windows Minimal Tests for Maven plugin" - if: ${{ false }} - # Fails with "Illegal char <�> at index 3: C:\�Users\�RUNNER~1\�AppData\�Local\�Temp\�spock_supports_spaces_in__0_testDirectory18198684407774777428\�with spaces\�local-repo\�org\�apache\�commons\�commons-lang3\�3.8.1\�commons-lang3-3.8.1.jar" runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -57,8 +56,9 @@ jobs: os: [ windows-latest ] steps: - name: "☁️ Checkout repository" - uses: actions/checkout@v3 - - uses: ./.github/actions/prepare-environment + uses: actions/checkout@v4 + - name: "🔧 Prepare environment" + uses: ./.github/actions/prepare-environment with: java-version: ${{ matrix.java-version }} github-token: ${{ secrets.GITHUB_TOKEN }} @@ -66,7 +66,7 @@ jobs: run: ./gradlew :native-maven-plugin:functionalTest --no-daemon --fail-fast - name: "📜 Upload tests results" if: always() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: windows-maven-functional-tests-results path: native-maven-plugin/build/reports/tests/ diff --git a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationFunctionalTest.groovy b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationFunctionalTest.groovy index ec8b25587..79b563b0c 100644 --- a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationFunctionalTest.groovy +++ b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationFunctionalTest.groovy @@ -51,7 +51,7 @@ import java.nio.file.Files class JavaApplicationFunctionalTest extends AbstractFunctionalTest { def "can build a native image for a simple application"() { - def nativeApp = file("build/native/nativeCompile/java-application") + def nativeApp = getExecutableFile("build/native/nativeCompile/java-application") debug = true given: @@ -85,7 +85,7 @@ class JavaApplicationFunctionalTest extends AbstractFunctionalTest { @Issue("https://github.com/graalvm/native-build-tools/issues/129") def "can build a native image with dependencies only needed by native image"() { - def nativeApp = file("build/native/nativeCompile/java-application") + def nativeApp = getExecutableFile("build/native/nativeCompile/java-application") given: withSample("java-application-with-extra-sourceset") @@ -119,7 +119,7 @@ class JavaApplicationFunctionalTest extends AbstractFunctionalTest { }) @Ignore("Need to find another way to test this since toolchains will now always be evaluated early") def "can override toolchain selection"() { - def nativeApp = file("build/native/nativeCompile/java-application") + def nativeApp = getExecutableFile("build/native/nativeCompile/java-application") given: withSample("java-application") @@ -178,7 +178,7 @@ class JavaApplicationFunctionalTest extends AbstractFunctionalTest { } and: - def nativeApp = file("build/native/nativeCompile/java-application") + def nativeApp = getExecutableFile("build/native/nativeCompile/java-application") nativeApp.exists() when: @@ -191,7 +191,7 @@ class JavaApplicationFunctionalTest extends AbstractFunctionalTest { @Issue("https://github.com/graalvm/native-build-tools/issues/275") def "can pass environment variables to the builder process"() { - def nativeApp = file("build/native/nativeCompile/java-application") + def nativeApp = getExecutableFile("build/native/nativeCompile/java-application") given: withSample("java-application") @@ -221,14 +221,19 @@ class JavaApplicationFunctionalTest extends AbstractFunctionalTest { @IgnoreIf({ System.getenv("IS_GRAALVM_DEV_BUILD") }) def "can build a native image with PGO instrumentation"() { def pgoDir = file("src/pgo-profiles/main").toPath() - def nativeApp = file("build/native/nativeCompile/java-application-instrumented") + def nativeApp = getExecutableFile("build/native/nativeCompile/java-application-instrumented") def pgoFile = file("build/native/nativeCompile/default.iprof") given: withSample("java-application") buildFile << """ - graalvmNative.binaries.all { - verbose = true + graalvmNative { + useArgFile = false // required to check for --pgo flag + binaries { + all { + verbose = true + } + } } """ diff --git a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationWithResourcesFunctionalTest.groovy b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationWithResourcesFunctionalTest.groovy index e6e38ed5c..6fa5b097f 100644 --- a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationWithResourcesFunctionalTest.groovy +++ b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationWithResourcesFunctionalTest.groovy @@ -46,7 +46,7 @@ import spock.lang.Unroll class JavaApplicationWithResourcesFunctionalTest extends AbstractFunctionalTest { @Unroll("can build an application which uses resources using #pattern with JUnit Platform #junitVersion") def "can build an application which uses resources"() { - def nativeApp = file("build/native/nativeCompile/java-application") + def nativeApp = getExecutableFile("build/native/nativeCompile/java-application") debug = true given: withSample("java-application-with-resources") @@ -77,7 +77,7 @@ class JavaApplicationWithResourcesFunctionalTest extends AbstractFunctionalTest process.output.contains "Hello, native!" and: - file("build/native/generated/generateResourcesConfigFile/resource-config.json").text == '''{ + matches(file("build/native/generated/generateResourcesConfigFile/resource-config.json").text, '''{ "resources" : { "includes" : [ { "pattern" : "\\\\Qmessage.txt\\\\E" @@ -85,7 +85,7 @@ class JavaApplicationWithResourcesFunctionalTest extends AbstractFunctionalTest "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') where: junitVersion = System.getProperty('versions.junit') @@ -151,7 +151,7 @@ graalvmNative { } and: - file("build/native/generated/generateTestResourcesConfigFile/resource-config.json").text == '''{ + matches(file("build/native/generated/generateTestResourcesConfigFile/resource-config.json").text, '''{ "resources" : { "includes" : [ { "pattern" : "\\\\Qmessage.txt\\\\E" @@ -161,7 +161,7 @@ graalvmNative { "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') where: junitVersion = System.getProperty('versions.junit') @@ -196,7 +196,7 @@ graalvmNative { } def "scans resources of jar file even if it includes a native-image/resources-config.json file"() { - def nativeApp = file("build/native/nativeCompile/java-application") + def nativeApp = getExecutableFile("build/native/nativeCompile/java-application") debug = true given: withSample("java-application-with-resources") @@ -242,7 +242,7 @@ graalvmNative { nativeApp.exists() and: - file("build/native/generated/generateResourcesConfigFile/resource-config.json").text == '''{ + matches(file("build/native/generated/generateResourcesConfigFile/resource-config.json").text, '''{ "resources" : { "includes" : [ { "pattern" : "\\\\Qmessage.txt\\\\E" @@ -250,7 +250,7 @@ graalvmNative { "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') when: def process = execute(nativeApp) diff --git a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationWithTestsFunctionalTest.groovy b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationWithTestsFunctionalTest.groovy index 80a08b7e4..d3f4f3765 100644 --- a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationWithTestsFunctionalTest.groovy +++ b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaApplicationWithTestsFunctionalTest.groovy @@ -49,7 +49,7 @@ import spock.lang.Unroll class JavaApplicationWithTestsFunctionalTest extends AbstractFunctionalTest { @Unroll("can execute tests in a native image with JUnit Platform #junitVersion") def "can build a native image and run it"() { - def nativeTestsApp = file("build/native/nativeTestCompile/java-application-tests") + def nativeTestsApp = getExecutableFile("build/native/nativeTestCompile/java-application-tests") given: withSample("java-application-with-tests") diff --git a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaLibraryFunctionalTest.groovy b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaLibraryFunctionalTest.groovy index fcc0d98e3..a4ed3a99a 100644 --- a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaLibraryFunctionalTest.groovy +++ b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/JavaLibraryFunctionalTest.groovy @@ -46,16 +46,7 @@ import org.graalvm.buildtools.gradle.fixtures.AbstractFunctionalTest class JavaLibraryFunctionalTest extends AbstractFunctionalTest { def "can build a native image for a simple library"() { - def libExt = "" - if (IS_LINUX) { - libExt = ".so" - } else if (IS_WINDOWS) { - libExt = ".dll" - } else if (IS_MAC) { - libExt = ".dylib" - } - - def library = file("build/native/nativeCompile/java-library" + libExt) + def sharedLibrary = getSharedLibraryFile("build/native/nativeCompile/java-library") debug = true given: @@ -73,6 +64,6 @@ class JavaLibraryFunctionalTest extends AbstractFunctionalTest { outputContains "--shared" and: - library.exists() + sharedLibrary.exists() } } diff --git a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/NativeConfigRepoFunctionalTest.groovy b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/NativeConfigRepoFunctionalTest.groovy index 30d067106..1ab82dcc7 100644 --- a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/NativeConfigRepoFunctionalTest.groovy +++ b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/NativeConfigRepoFunctionalTest.groovy @@ -78,7 +78,7 @@ class NativeConfigRepoFunctionalTest extends AbstractFunctionalTest { outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory not found. Trying latest version." and: "but finds one thanks to the latest configuration field" - outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory is org.graalvm.internal/library-with-reflection/1" + outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory is org.graalvm.internal" + File.separator + "library-with-reflection" + File.separator + "1" where: format | label diff --git a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/OfficialMetadataRepoFunctionalTest.groovy b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/OfficialMetadataRepoFunctionalTest.groovy index 514af9793..57e3ad831 100644 --- a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/OfficialMetadataRepoFunctionalTest.groovy +++ b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/OfficialMetadataRepoFunctionalTest.groovy @@ -60,7 +60,7 @@ class OfficialMetadataRepoFunctionalTest extends AbstractFunctionalTest { } and: "finds metadata in the remote repository" - outputContains "[graalvm reachability metadata repository for com.h2database:h2:2.1.210]: Configuration directory is com.h2database/h2/2.1.210" + outputContains "[graalvm reachability metadata repository for com.h2database:h2:2.1.210]: Configuration directory is com.h2database" + File.separator + "h2" + File.separator + "2.1.210" outputDoesNotContain "Falling back to the default repository at" } diff --git a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/ReachabilityMetadataFunctionalTest.groovy b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/ReachabilityMetadataFunctionalTest.groovy index cb5ec6f59..33b733513 100644 --- a/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/ReachabilityMetadataFunctionalTest.groovy +++ b/native-gradle-plugin/src/functionalTest/groovy/org/graalvm/buildtools/gradle/ReachabilityMetadataFunctionalTest.groovy @@ -59,7 +59,7 @@ class ReachabilityMetadataFunctionalTest extends AbstractFunctionalTest { } and: "has copied metadata file" - file("build/native-reachability-metadata/META-INF/native-image/com.h2database/h2/2.1.210/resource-config.json").text.trim() == '''{ + matches(file("build/native-reachability-metadata/META-INF/native-image/com.h2database/h2/2.1.210/resource-config.json").text.trim(), '''{ "bundles": [], "resources": { "includes": [ @@ -71,7 +71,7 @@ class ReachabilityMetadataFunctionalTest extends AbstractFunctionalTest { } ] } -}''' +}''') and: "has copied reachability-metadata.properties file" file("build/native-reachability-metadata/META-INF/native-image/io.netty/netty-codec-http/4.1.80.Final/reachability-metadata.properties").text.trim() == 'override=true' } diff --git a/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/internal/NativeImageCommandLineProvider.java b/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/internal/NativeImageCommandLineProvider.java index 193fff0ac..d7e226788 100644 --- a/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/internal/NativeImageCommandLineProvider.java +++ b/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/internal/NativeImageCommandLineProvider.java @@ -72,6 +72,7 @@ public class NativeImageCommandLineProvider implements CommandLineArgumentProvid private final Provider classpathJar; private final Provider useArgFile; private final Provider majorJDKVersion; + private final Provider useColors; public NativeImageCommandLineProvider(Provider options, Provider executableName, @@ -79,7 +80,8 @@ public NativeImageCommandLineProvider(Provider options, Provider outputDirectory, Provider classpathJar, Provider useArgFile, - Provider majorJDKVersion) { + Provider majorJDKVersion, + Provider useColors) { this.options = options; this.executableName = executableName; this.workingDirectory = workingDirectory; @@ -87,6 +89,7 @@ public NativeImageCommandLineProvider(Provider options, this.classpathJar = classpathJar; this.useArgFile = useArgFile; this.majorJDKVersion = majorJDKVersion; + this.useColors = useColors; } @Nested @@ -122,7 +125,9 @@ public List asArguments() { appendBooleanOption(cliArgs, options.getVerbose(), "--verbose"); appendBooleanOption(cliArgs, options.getSharedLibrary(), "--shared"); appendBooleanOption(cliArgs, options.getQuickBuild(), "-Ob"); - appendBooleanOption(cliArgs, options.getRichOutput(), majorJDKVersion.getOrElse(-1) >= 21 ? "--color" : "-H:+BuildOutputColorful"); + if (useColors.get()) { + appendBooleanOption(cliArgs, options.getRichOutput(), majorJDKVersion.getOrElse(-1) >= 21 ? "--color" : "-H:+BuildOutputColorful"); + } appendBooleanOption(cliArgs, options.getPgoInstrument(), "--pgo-instrument"); String targetOutputPath = getExecutableName().get(); diff --git a/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/tasks/BuildNativeImageTask.java b/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/tasks/BuildNativeImageTask.java index ab6753e6e..e41e6e202 100644 --- a/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/tasks/BuildNativeImageTask.java +++ b/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/tasks/BuildNativeImageTask.java @@ -88,6 +88,7 @@ public abstract class BuildNativeImageTask extends DefaultTask { private final Provider graalvmHomeProvider; private final NativeImageExecutableLocator.Diagnostics diagnostics; + private final boolean useColors; @Internal public abstract Property getOptions(); @@ -176,6 +177,7 @@ public BuildNativeImageTask() { ProviderFactory providers = getProject().getProviders(); this.diagnostics = new NativeImageExecutableLocator.Diagnostics(); this.graalvmHomeProvider = graalvmHomeProvider(providers, diagnostics); + this.useColors = "plain".equals(getProject().getGradle().getStartParameter().getConsoleOutput()); getDisableToolchainDetection().convention(false); } @@ -190,7 +192,8 @@ private List buildActualCommandLineArgs(int majorJDKVersion) { getProviders().provider(() -> getOutputDirectory().getAsFile().get().getAbsolutePath()), getClasspathJar(), getUseArgFile(), - getProviders().provider(() -> majorJDKVersion)).asArguments(); + getProviders().provider(() -> majorJDKVersion), + getProviders().provider(() -> useColors)).asArguments(); } // This property provides access to the service instance diff --git a/native-gradle-plugin/src/test/groovy/org/graalvm/buildtools/gradle/tasks/AbstractPluginTest.groovy b/native-gradle-plugin/src/test/groovy/org/graalvm/buildtools/gradle/tasks/AbstractPluginTest.groovy index 80bbf8059..f4a0f6346 100644 --- a/native-gradle-plugin/src/test/groovy/org/graalvm/buildtools/gradle/tasks/AbstractPluginTest.groovy +++ b/native-gradle-plugin/src/test/groovy/org/graalvm/buildtools/gradle/tasks/AbstractPluginTest.groovy @@ -199,4 +199,11 @@ abstract class AbstractPluginTest extends Specification { } } + static boolean matches(String actual, String expected) { + normalizeString(actual) == normalizeString(expected) + } + + private static String normalizeString(String input) { + input.replace("\r\n", "\n").replace("\\\\", "/") + } } diff --git a/native-gradle-plugin/src/test/groovy/org/graalvm/buildtools/gradle/tasks/GenerateResourcesConfigFileTest.groovy b/native-gradle-plugin/src/test/groovy/org/graalvm/buildtools/gradle/tasks/GenerateResourcesConfigFileTest.groovy index 8f2bd3aa6..27b027c93 100644 --- a/native-gradle-plugin/src/test/groovy/org/graalvm/buildtools/gradle/tasks/GenerateResourcesConfigFileTest.groovy +++ b/native-gradle-plugin/src/test/groovy/org/graalvm/buildtools/gradle/tasks/GenerateResourcesConfigFileTest.groovy @@ -51,13 +51,13 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { then: with(project) { outputFile.exists() - outputFile.text == '''{ + matches(outputFile.text, '''{ "resources" : { "includes" : [ ], "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') } } @@ -72,7 +72,7 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { then: with(project) { outputFile.exists() - outputFile.text == '''{ + matches(outputFile.text, '''{ "resources" : { "includes" : [ ], "excludes" : [ ] @@ -82,7 +82,7 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { }, { "name" : "other.bundle" } ] -}''' +}''') } } @@ -98,7 +98,7 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { then: with(project) { outputFile.exists() - outputFile.text == '''{ + matches(outputFile.text, '''{ "resources" : { "includes" : [ { "pattern" : "pattern" @@ -112,7 +112,7 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { } ] }, "bundles" : [ ] -}''' +}''') } } @@ -127,13 +127,13 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { then: with(project) { outputFile.exists() - outputFile.text == '''{ + matches(outputFile.text, '''{ "resources" : { "includes" : [ ], "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') } } @@ -149,7 +149,7 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { then: with(project) { outputFile.exists() - outputFile.text == '''{ + matches(outputFile.text, '''{ "resources" : { "includes" : [ { "pattern" : "\\\\Qorg/foo/some/resource.txt\\\\E" @@ -157,7 +157,7 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') } } @@ -174,7 +174,7 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { then: with(project) { outputFile.exists() - outputFile.text == '''{ + matches(outputFile.text, '''{ "resources" : { "includes" : [ { "pattern" : "\\\\Qorg/foo/some/resource.txt\\\\E" @@ -182,7 +182,7 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') } } @@ -198,7 +198,7 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { then: with(project) { outputFile.exists() - outputFile.text == '''{ + matches(outputFile.text, '''{ "resources" : { "includes" : [ { "pattern" : "\\\\Qorg/foo/some/resource.txt\\\\E" @@ -206,7 +206,7 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') } } @@ -224,13 +224,13 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { then: with(project) { outputFile.exists() - outputFile.text == '''{ + matches(outputFile.text, '''{ "resources" : { "includes" : [ ], "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') } } @@ -246,13 +246,13 @@ class GenerateResourcesConfigFileTest extends AbstractPluginTest { then: with(project) { outputFile.exists() - outputFile.text == '''{ + matches(outputFile.text, '''{ "resources" : { "includes" : [ ], "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') } } diff --git a/native-gradle-plugin/src/testFixtures/groovy/org/graalvm/buildtools/gradle/fixtures/AbstractFunctionalTest.groovy b/native-gradle-plugin/src/testFixtures/groovy/org/graalvm/buildtools/gradle/fixtures/AbstractFunctionalTest.groovy index aed808f5e..e93df23fc 100644 --- a/native-gradle-plugin/src/testFixtures/groovy/org/graalvm/buildtools/gradle/fixtures/AbstractFunctionalTest.groovy +++ b/native-gradle-plugin/src/testFixtures/groovy/org/graalvm/buildtools/gradle/fixtures/AbstractFunctionalTest.groovy @@ -91,6 +91,23 @@ abstract class AbstractFunctionalTest extends Specification { path(pathElements).toFile() } + File getExecutableFile(String path) { + file(IS_WINDOWS ? path + ".exe" : path) + } + + File getSharedLibraryFile(String path) { + def libExt = "" + if (IS_LINUX) { + libExt = ".so" + } else if (IS_WINDOWS) { + libExt = ".dll" + } else if (IS_MAC) { + libExt = ".dylib" + } + assert !libExt.isEmpty(): "Unable to determine shared library extension: unexpected operating system" + file("build/native/nativeCompile/java-library" + libExt) + } + File getGroovyBuildFile() { file("build.gradle") } @@ -152,6 +169,10 @@ abstract class AbstractFunctionalTest extends Specification { assert errorOutput.contains(normalizeString(text)) } + static boolean matches(String actual, String expected) { + normalizeString(actual) == normalizeString(expected) + } + void tasks(@DelegatesTo(value = TaskExecutionGraph, strategy = Closure.DELEGATE_FIRST) Closure spec) { def graph = new TaskExecutionGraph() spec.delegate = graph @@ -266,6 +287,6 @@ abstract class AbstractFunctionalTest extends Specification { } private static String normalizeString(String input) { - input.replace("\r\n", "\n") + input.replace("\r\n", "\n").replace("\\\\", "/") } } diff --git a/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/JavaApplicationFunctionalTest.groovy b/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/JavaApplicationFunctionalTest.groovy index c49a29bb2..5509d88ae 100644 --- a/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/JavaApplicationFunctionalTest.groovy +++ b/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/JavaApplicationFunctionalTest.groovy @@ -43,6 +43,8 @@ package org.graalvm.buildtools.maven import spock.lang.Issue +import static org.graalvm.buildtools.utils.SharedConstants.NATIVE_IMAGE_EXE; + class JavaApplicationFunctionalTest extends AbstractGraalVMMavenFunctionalTest { def "proper options are added to the native-image invocation"() { withSample("java-application") @@ -55,7 +57,9 @@ class JavaApplicationFunctionalTest extends AbstractGraalVMMavenFunctionalTest { then: buildSucceeded - outputContains "native-image -cp / -g --no-fallback --verbose --shared -Ob" + outputContains NATIVE_IMAGE_EXE + outputContains "-cp " // actual path is OS-specific (/ vs C:\) + outputContains "-g --no-fallback --verbose --shared -Ob" } def "can build and execute a native image with the Maven plugin"() { @@ -116,7 +120,7 @@ class JavaApplicationFunctionalTest extends AbstractGraalVMMavenFunctionalTest { then: buildSucceeded - outputContains "Args file written to: target/native-image" + outputContains "Args file written to: target" + File.separator + "native-image" } } diff --git a/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/JavaApplicationWithResourcesFunctionalTest.groovy b/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/JavaApplicationWithResourcesFunctionalTest.groovy index 6125442e3..3fbd42830 100644 --- a/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/JavaApplicationWithResourcesFunctionalTest.groovy +++ b/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/JavaApplicationWithResourcesFunctionalTest.groovy @@ -32,7 +32,7 @@ class JavaApplicationWithResourcesFunctionalTest extends AbstractGraalVMMavenFun outputContains "Hello, native!" and: - file("target/native/generated/generateResourceConfig/resource-config.json").text == '''{ + matches(file("target/native/generated/generateResourceConfig/resource-config.json").text, '''{ "resources" : { "includes" : [ { "pattern" : "\\\\Qmessage.txt\\\\E" @@ -40,7 +40,7 @@ class JavaApplicationWithResourcesFunctionalTest extends AbstractGraalVMMavenFun "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') where: detection | includedPatterns | restrictToModules | detectionExclusionPatterns @@ -75,7 +75,7 @@ class JavaApplicationWithResourcesFunctionalTest extends AbstractGraalVMMavenFun buildSucceeded and: - file("target/native/generated/generateTestResourceConfig/resource-config.json").text == '''{ + matches(file("target/native/generated/generateTestResourceConfig/resource-config.json").text, '''{ "resources" : { "includes" : [ { "pattern" : "\\\\Qmessage.txt\\\\E" @@ -85,7 +85,7 @@ class JavaApplicationWithResourcesFunctionalTest extends AbstractGraalVMMavenFun "excludes" : [ ] }, "bundles" : [ ] -}''' +}''') where: detection | includedPatterns | restrictToModules | detectionExclusionPatterns diff --git a/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/MetadataRepositoryFunctionalTest.groovy b/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/MetadataRepositoryFunctionalTest.groovy index 724caaf72..10c8ce04a 100644 --- a/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/MetadataRepositoryFunctionalTest.groovy +++ b/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/MetadataRepositoryFunctionalTest.groovy @@ -41,6 +41,8 @@ package org.graalvm.buildtools.maven +import static org.graalvm.buildtools.utils.SharedConstants.NATIVE_IMAGE_EXE; + class MetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunctionalTest { void "if metadata is disabled, reflection fails"() { @@ -70,7 +72,7 @@ class MetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunctionalTes outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory not found. Trying latest version." and: "but it finds one thanks to the latest configuration field" - outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory is org.graalvm.internal/library-with-reflection/1" + outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory is org.graalvm.internal" + File.separator + "library-with-reflection" + File.separator + "1" } void "if excludeConfig is set it is added to the command line invocation"() { @@ -82,7 +84,7 @@ class MetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunctionalTes then: buildSucceeded - outputContains "native-image --exclude-config dummy/path/to/file.jar \"*\"" + outputContains NATIVE_IMAGE_EXE + " --exclude-config dummy/path/to/file.jar \"*\"" } void "if the path doesn't exist it throws an error"() { @@ -138,7 +140,7 @@ class MetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunctionalTes outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory not found. Trying latest version." and: "but it finds one thanks to the latest configuration field" - outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory is org.graalvm.internal/library-with-reflection/1" + outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory is org.graalvm.internal" + File.separator + "library-with-reflection" + File.separator + "1" } void "it can download a remote repository"() { @@ -158,7 +160,7 @@ class MetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunctionalTes outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory not found. Trying latest version." and: "but it finds one thanks to the latest configuration field" - outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory is org.graalvm.internal/library-with-reflection/1" + outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory is org.graalvm.internal" + File.separator + "library-with-reflection" + File.separator + "1" } void "when pointing to a missing URL, reflection fails"() { @@ -186,12 +188,12 @@ class MetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunctionalTes buildSucceeded and: - file("target/classes/META-INF/native-image/org.graalvm.internal/library-with-reflection/1.5/reflect-config.json").text.trim() == '''[ + matches(file("target/classes/META-INF/native-image/org.graalvm.internal/library-with-reflection/1.5/reflect-config.json").text.trim(), '''[ { "name": "org.graalvm.internal.reflect.Message", "allDeclaredFields": true, "allDeclaredMethods": true } -]''' +]''') } } diff --git a/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/OfficialMetadataRepositoryFunctionalTest.groovy b/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/OfficialMetadataRepositoryFunctionalTest.groovy index e78b2131c..fef12fb8f 100644 --- a/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/OfficialMetadataRepositoryFunctionalTest.groovy +++ b/native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/OfficialMetadataRepositoryFunctionalTest.groovy @@ -41,7 +41,10 @@ package org.graalvm.buildtools.maven +import spock.lang.IgnoreIf + class OfficialMetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunctionalTest { + @IgnoreIf({ os.windows }) void "the application runs when using the official metadata repository"() { given: withSample("metadata-repo-integration") @@ -56,10 +59,11 @@ class OfficialMetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunct outputContains "Customers in the database" and: "finds metadata in the remote repository" - outputContains "[graalvm reachability metadata repository for com.h2database:h2:2.1.210]: Configuration directory is com.h2database/h2/2.1.210" + outputContains "[graalvm reachability metadata repository for com.h2database:h2:2.2.220]: Configuration directory is com.h2database/h2/2.2.220" outputDoesNotContain "Falling back to the default repository." } + @IgnoreIf({ os.windows }) void "the application runs when using the versioned official metadata repository"() { given: withSample("metadata-repo-integration") @@ -74,6 +78,6 @@ class OfficialMetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunct outputContains "Customers in the database" and: "finds metadata in the remote repository" - outputContains "[graalvm reachability metadata repository for com.h2database:h2:2.1.210]: Configuration directory is com.h2database/h2/2.1.210" + outputContains "[graalvm reachability metadata repository for com.h2database:h2:2.2.220]: Configuration directory is com.h2database/h2/2.2.220" } } diff --git a/native-maven-plugin/src/testFixtures/groovy/org/graalvm/buildtools/maven/AbstractGraalVMMavenFunctionalTest.groovy b/native-maven-plugin/src/testFixtures/groovy/org/graalvm/buildtools/maven/AbstractGraalVMMavenFunctionalTest.groovy index 8c07466a2..00c593bc6 100644 --- a/native-maven-plugin/src/testFixtures/groovy/org/graalvm/buildtools/maven/AbstractGraalVMMavenFunctionalTest.groovy +++ b/native-maven-plugin/src/testFixtures/groovy/org/graalvm/buildtools/maven/AbstractGraalVMMavenFunctionalTest.groovy @@ -222,12 +222,16 @@ abstract class AbstractGraalVMMavenFunctionalTest extends Specification { !normalizeString(result.stdOut).contains(normalizeString(text)) } + static boolean matches(String actual, String expected) { + normalizeString(actual) == normalizeString(expected) + } + File file(String path) { testDirectory.resolve(path).toFile() } private static String normalizeString(String input) { - input.replace("\r\n", "\n") + input.replace("\r\n", "\n").replace("\\\\", "/") } String getArgFileContents() { diff --git a/native-maven-plugin/src/testFixtures/groovy/org/graalvm/buildtools/maven/IsolatedMavenExecutor.groovy b/native-maven-plugin/src/testFixtures/groovy/org/graalvm/buildtools/maven/IsolatedMavenExecutor.groovy index 6dad7aa9a..a0f7e2d88 100644 --- a/native-maven-plugin/src/testFixtures/groovy/org/graalvm/buildtools/maven/IsolatedMavenExecutor.groovy +++ b/native-maven-plugin/src/testFixtures/groovy/org/graalvm/buildtools/maven/IsolatedMavenExecutor.groovy @@ -80,7 +80,11 @@ class IsolatedMavenExecutor { .command(cliArgs) def environment = builder.environment() - environment.put("GRAALVM_HOME", javaExecutable.parentFile.parentFile.absolutePath) + String graalvmHome = System.getenv("GRAALVM_HOME") + if (graalvmHome == null) { + graalvmHome = javaExecutable.parentFile.parentFile.absolutePath + } + environment.put("GRAALVM_HOME", graalvmHome) environment.put("M2_HOME", m2Home.absolutePath) Process p = builder .redirectErrorStream(true) diff --git a/samples/java-application-with-custom-packaging/src/main/resources/logback.xml b/samples/java-application-with-custom-packaging/src/main/resources/logback.xml index 214d9d904..5f5238e9f 100644 --- a/samples/java-application-with-custom-packaging/src/main/resources/logback.xml +++ b/samples/java-application-with-custom-packaging/src/main/resources/logback.xml @@ -1,7 +1,7 @@ - true + false diff --git a/samples/java-library/build.gradle b/samples/java-library/build.gradle index b8eac6ff4..0b9c4d818 100644 --- a/samples/java-library/build.gradle +++ b/samples/java-library/build.gradle @@ -57,6 +57,7 @@ dependencies { } graalvmNative { + useArgFile = false // required to check for flags in tests binaries { main { verbose = true diff --git a/samples/java-library/pom.xml b/samples/java-library/pom.xml index 62ff4e893..778878e14 100644 --- a/samples/java-library/pom.xml +++ b/samples/java-library/pom.xml @@ -89,6 +89,7 @@ ${imageName} false true + false diff --git a/samples/metadata-repo-integration/gradle.properties b/samples/metadata-repo-integration/gradle.properties index 4ecce279f..37ae00fb9 100644 --- a/samples/metadata-repo-integration/gradle.properties +++ b/samples/metadata-repo-integration/gradle.properties @@ -1,5 +1,5 @@ native.gradle.plugin.version = 0.9.28-SNAPSHOT -h2.version = 2.1.210 +h2.version = 2.2.220 netty.version = 4.1.80.Final logback.version = 1.4.4 log4j.version = 2.19.0 diff --git a/samples/native-config-integration/pom.xml b/samples/native-config-integration/pom.xml index 6d4729757..81ebfe939 100644 --- a/samples/native-config-integration/pom.xml +++ b/samples/native-config-integration/pom.xml @@ -94,6 +94,7 @@ ${imageName} false true + false