Skip to content
This repository has been archived by the owner on May 8, 2020. It is now read-only.

cloudfoundry/build-system-cnb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published