build-system-cnb

module
v1.2.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2020 License: Apache-2.0

README

build-system-cnb

The Cloud Foundry Build System Buildpack is a Cloud Native Buildpack V3 that enables the building of JVM applications from source.

This buildpack is designed to work in collaboration with other buildpacks.

Detection

The detection phase passes if

  • <APPLICATION_ROOT>/build.gradle or <APPLICATION_ROOT>/build.gradle.kts exists

    • Contributes gradle to the build plan
    • Contributes jvm-application to the build plan
    • Contributes openjdk-jdk to the build plan
  • <APPLICATION_ROOT>/pom.xml exists

    • Contributes maven to the build plan
    • Contributes jvm-application to the build plan
    • Contributes openjdk-jdk to the build plan

Build

If the build plan contains

  • gradle

    • Contributes a layer marked cache and links it to $HOME/.gradlew
    • If <APPLICATION_ROOT>/gradlew exists
      • Contributes a layer marked build, cache, and launch by running <APPLICATION_ROOT>/gradlew -x test build
      • If $BP_BUILD_ARGUMENTS exists, uses the specified arguments appended to the executable to build the application
      • Avoids building application if source code has not changed
    • If <APPLICATION_ROOT>/gradlew does not exist
      • Contributes Gradle distribution to a layer marked cache with all commands on $PATH
      • Contributes a layer marked build, cache, and launch by running <GRADLE_ROOT>/bin/gradle -x test build
      • If $BP_BUILD_ARGUMENTS exists, uses the specified arguments appended to the executable to build the application
      • Avoids building application if source code has not changed
    • Replaces<APPLICATION_ROOT> with a link to compiled application layer
    • If $BP_BUILT_MODULE exists, prepends a directory to the default glob pattern when searching for the built artifact
    • If $BP_BUILT_ARTIFACT exists, uses the specified path (including glob patterns) as the built artifact. Supersedes $BP_BUILT_MODULE.
  • maven

    • Contributes a layer marked cache and links it to $HOME/.m2
    • If <APPLICATION_ROOT>/mvnw exists
      • Contributes a layer marked build, cache, and launch by running <APPLICATION_ROOT>/mvnw -Dmaven.test.skip=true package
      • If $BP_BUILD_ARGUMENTS exists, uses the specified arguments appended to the executable to build the application
      • Avoids building application if source code has not changed
    • If <APPLICATION_ROOT>/mvnw does not exist
      • Contributes Maven distribution to a layer marked cache with all commands on $PATH
      • Contributes a layer marked build, cache, and launch by running <MAVEN_ROOT>/bin/mvn -Dmaven.test.skip=true package
      • If $BP_BUILD_ARGUMENTS exists, uses the specified arguments appended to the executable to build the application
    • Replaces<APPLICATION_ROOT> with a link to compiled application layer
    • If $BP_BUILT_MODULE exists, prepends a directory to the default glob pattern when searching for the built artifact
    • If $BP_BUILT_ARTIFACT exists, uses the specified path (including glob patterns) as the built artifact. Supersedes $BP_BUILT_MODULE.

License

This buildpack is released under version 2.0 of the Apache License.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL