Tags
name
Analphanumericstring (underscores are permitted) that identifies the step.
type
Must beMvnBuild
for this step type.
configuration
Specifies all configuration selections for the step's execution environment.This step inherits theBash/PowerShellstep configuration tags, including these pertinenttags:
Tag |
Description of usage |
Required/Optional |
---|---|---|
integrations |
Must specify anArtifactory Integration | Required |
inputResources |
Must specifyaGitReporesource. The mvn commandperforms the build on files in the Git repository at May also optionally specify aFileSpecresource that specifies what files to copy to |
Required |
outputResources |
Must specify aBuildInforesource if |
May be required |
In addition, these tags can be defined to support the step's native operation:
来自本地所有步骤Bashstep. This means that all steps share the same base set of tags from Bash, while native steps have their own additional tags as well that support the step's particular function. So it's important to be familiar with theBashstep definition, since it's the core of the definition of all other steps.
Tag |
Description of usage |
Required/Optional |
---|---|---|
mvnCommand |
Specifies a command line string of options to use with Maven. Default is |
Optional |
sourceLocation |
Specifies the location of the source files. By default this is set to the root directory of the GitRepo resource. Defaults to the root of the GitRepo. Required if the source files are not in the root directory. |
May be required |
resolverSnapshotRepo |
Artifactory repository to resolve snapshot dependencies. If set, Do not use with |
Optional |
resolverReleaseRepo |
Artifactory repository to resolve release dependencies. If set, Do not use with |
Optional |
deployerSnapshotRepo |
Snapshot artifacts created by the MvnBuild are uploaded to this Artifactory repository. If set, Do not use with |
Optional |
deployerReleaseRepo |
Release artifacts created by the MvnBuild are uploaded to this Artifactory repository. If set, deployerSnapshot Do not use with |
Optional |
forceXrayScan |
When set to |
Optional |
failOnScan |
When set to |
Optional |
autoPublishBuildInfo |
When set to |
Optional |
configFileName |
Specifies the name of the JFrog CLI mvn-config file. The This option should be used only if you have committed this configuration file to your source |
Optional |
configFileLocation |
Specifies the directory containing the JFrog CLI mvn-config file, relative to the This option should be used only if you have committed this configuration file to your source |
Optional |
execution
Declares collections of shell command sequences to perform for pre- and post-execution phases:Tag | Description of usage | Required/Optional |
---|---|---|
onStart |
Commands to execute in advance of the native operation | Optional |
onSuccess |
Commands to execute on successful completion | Optional |
onFailure |
Commands to execute on failed completion | Optional |
onComplete |
Commands to execute on any completion | Optional |
The actions performed for theonExecute
phase are inherent to this step type and may not be overridden.
Examples
The following examples show a few ways in which a MvnBuild step can be configured.
Full Pipeline Example
- This example requires anArtifactory Integrationand aGitHub Integration.
- 管道DSLfor this example isavailable inthis repositoryin theJFrogGitHub account.
- For a full tutorial, seePipeline Example: Maven Build.
# This config file is templatized so that it can be easily customized. Values can be provided with a values.yml file. template: true # required for local templates valuesFilePath: ./values.yml resources: - name: mvn_repo type: GitRepo configuration: path: {{ .Values.repoPath }} gitProvider: {{ .Values.gitProvider }} - name: mvn_build_info type: BuildInfo configuration: sourceArtifactory: {{ .Values.artifactory }} pipelines: - name: demo_maven steps: - name: mvn_build_step type: MvnBuild configuration: deployerSnapshotRepo: {{ .Values.deployerRepo }} deployerReleaseRepo: {{ .Values.deployerRepo }} inputResources: - name: mvn_repo integrations: - name: {{ .Values.artifactory }} - name: publish_build type: PublishBuildInfo configuration: forceXrayScan: false inputSteps: - name: mvn_build_step outputResources: - name: mvn_build_info
Basic Example using Default Values
The most basic form of MvnBuild. Uses all default values. This step navigates to the root of the repo specified in theinputResources
array, and performs anmvn clean install
. It does not publish a build or request an Xray scan.
pipelines: - name: MyMavenPipeline steps: - name: MavenWithArtifactory type: MvnBuild configuration: integrations: - name: art inputResources: - name: mvn_repo
Using Artifactory as Resolver and Deployer
This example uses Artifactory as a resolver and a deployer, so that your project's dependencies are pulled from the specified repo, and the resulting artifacts are pushed back up to Artifactory. It also publishes build info to Artifactory and requests an Xray scan.
pipelines: - name: MyMavenPipeline steps: - name: MavenWithAll type: MvnBuild configuration: integrations: - name: art inputResources: - name: mvn_repo outputResources: - name: mvn_build_info mvnCommand: clean install test sourceLocation: mvnproject resolverSnapshotRepo: snapshots-remote-maven resolverReleaseRepo: releases-remote-maven deployerSnapshotRepo: snapshots-local-maven deployerReleaseRepo: releases-local-maven forceXrayScan: true failOnScan: true autoPublishBuildInfo: true
Using a Config File
This example uses a committed config file to accomplish the same thing thatexample 2does.
pipelines: - name: MyMavenPipeline steps: - name: MvnWithConfig type: MvnBuild configuration: integrations: - name: art inputResources: - name: mvn_repo outputResources: - name: mvn_build_info mvnCommand: clean install test sourceLocation: mvnproject configFileLocation: "." configFileName: mvn-art-config forceXrayScan: true failOnScan: true autoPublishBuildInfo: true
How it Works
When you use theMvnBuildnative step in a pipeline, it performs the following actions in the background:
jfrog rt config # configures JFrog CLI with the integration listed in the yaml jfrog rt mvn-config # if configFileName and configFileLocation are not set in yaml jfrog rt mvn $mvnCommand # the main maven build command add_run_variables # saves some information in run state for future steps to reference jfrog rt build-collect-env # collects build environment, preparing for build publish jfrog rt build-publish # only if autoPublishBuildInfo is true write_output # updates the buildinfo resource, if present jfrog rt build-scan # if forceXrayScan is true add_run_files # adds BuildInfo to run state