CINXE.COM
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 5.14.0"/><meta data-react-helmet="true" content="text/html; charset=UTF-8" http-equiv="Content-Type"/><meta data-react-helmet="true" charSet="utf-8"/><meta data-react-helmet="true" content="width=device-width, initial-scale=1" name="viewport"/><meta data-react-helmet="true" content="ie=edge" http-equiv="x-ua-compatible"/><meta data-react-helmet="true" content="#2b5797" name="msapplication-TileColor"/><meta data-react-helmet="true" content="#ffffff" name="theme-color"/><meta data-react-helmet="true" content="@JenkinsCI" name="twitter:site"/><meta data-react-helmet="true" content="article" property="og:type"/><meta data-react-helmet="true" name="description" content="This plugin allows Jenkins to invoke <a href="http://www.gradle.org/" target="_blank" rel="nofollow noopener noreferrer">Gradle</a> build scripts directly."/><meta data-react-helmet="true" name="image" content="https://jenkins.io/images/logo-title-opengraph.png"/><meta data-react-helmet="true" property="og:url" content="https://plugins.jenkins.io/gradle"/><meta data-react-helmet="true" property="og:site_name" content="Gradle"/><meta data-react-helmet="true" property="og:title" content="Gradle"/><meta data-react-helmet="true" property="apple-mobile-web-app-title" content="Gradle"/><meta data-react-helmet="true" property="og:description" content="This plugin allows Jenkins to invoke <a href="http://www.gradle.org/" target="_blank" rel="nofollow noopener noreferrer">Gradle</a> build scripts directly."/><meta data-react-helmet="true" property="og:image" content="https://jenkins.io/images/logo-title-opengraph.png"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:creator" content="@JenkinsCI"/><meta data-react-helmet="true" name="twitter:title" content="Gradle"/><meta data-react-helmet="true" name="twitter:description" content="This plugin allows Jenkins to invoke <a href="http://www.gradle.org/" target="_blank" rel="nofollow noopener noreferrer">Gradle</a> build scripts directly."/><meta data-react-helmet="true" name="twitter:image" content="https://jenkins.io/images/logo-title-opengraph.png"/><style data-href="/styles.9cc8d7d728642dfb2d92.css" data-identity="gatsby-global-css">@import url(https://www.jenkins.io/assets/bower/bootstrap/css/bootstrap.min.css);@import url(https://www.jenkins.io/css/jenkins.css);@import url(https://www.jenkins.io/css/copy-to-clipboard.css);@import url(https://www.jenkins.io/stylesheets/styles.css);@import url(https://www.jenkins.io/css/footer.css);body .fixed.top{z-index:999}img{max-width:100%}body{overflow-x:hidden}body .showResults.item-finder>#plugin-search-form.HomeHeader{padding:.25rem .5rem}#plugin-search-form .SearchBox .SearchBtn,#plugin-search-form .SearchBox .ShowFilter{color:#fff!important}.SearchBox label.input-group{width:100%}.SearchBox .input-group .btn{border:1px solid #900}body .showResults.item-finder>.HomeHeader>.navbar{padding:0 10.5rem 0 0;width:100%}body .showResults.item-finder>.HomeHeader>.navbar>.nav,body .showResults.item-finder>.HomeHeader>.navbar>.nav>.SearchBox{padding:0!important;width:100%}body .showResults.item-finder>.HomeHeader>.navbar>.nav>.btn-group>button>i{line-height:1.5rem}body .showResults.item-finder>.HomeHeader>.navbar>.nav>.btn-group{position:absolute;right:0;top:0}body .showResults.item-finder>.HomeHeader>.navbar>.nav>.SearchBox .ShowFilter{max-width:10rem!important;width:18.6%!important}body .showResults.item-finder .filters{border-left:none;border-radius:0;border-top:none;box-shadow:-.25rem 0 #fff;left:.25rem;margin-top:-1px;padding-top:1rem!important;top:5px}body .showResults.item-finder .filters .row{border:none;padding:0}body .showResults.item-finder .filters .row>div{font-size:.75rem;overflow:hidden;padding:0 .5rem}body .showResults.item-finder .filters .row>div label{white-space:nowrap}body .showResults #plugin-search-form .nav>.btn-group{display:inline-block}body .showResults #plugin-search-form h1,body .showResults #plugin-search-form p,body .showResults #plugin-search-form:before{display:none}.page-link{cursor:pointer}.CategoryList,.CategoryList ul{list-style:none;margin:0;padding:0;vertical-align:middle}.CategoryList>li>label{font-weight:700}.CategoryList>li>ul{padding:0 0 1rem}.CategoryList>li{-moz-column-break-inside:avoid;break-inside:avoid-column;display:table;page-break-inside:avoid}h1 .anchor ion-icon,h2 .anchor ion-icon,h3 .anchor ion-icon,h4 .anchor ion-icon,h5 .anchor ion-icon,h6 .anchor ion-icon{visibility:hidden}h1 .anchor:focus ion-icon,h1:hover .anchor ion-icon,h2 .anchor:focus ion-icon,h2:hover .anchor ion-icon,h3 .anchor:focus ion-icon,h3:hover .anchor ion-icon,h4 .anchor:focus ion-icon,h4:hover .anchor ion-icon,h5 .anchor:focus ion-icon,h5:hover .anchor ion-icon,h6 .anchor:focus ion-icon,h6:hover .anchor ion-icon{visibility:visible}.filters .show-all{background:#168bb9;border:none;border-radius:2px;color:#fff;font-size:.67rem;font-weight:200;margin-left:.5rem;padding:.15rem .5rem}.isFiltered .filters .show-all{display:inline-block}#pluginDependencies h3{font-size:1.2rem;margin-top:.7rem}#pluginDependencies h2{margin-top:.7rem}.empty{opacity:.5}.NoLabels>.Categories label>input{display:none}.NoLabels>.Categories label>span{color:#0275d8;cursor:pointer;margin-left:0!important}h1.title{margin-right:2rem}:root{--code-background:#f6f8fa;--no-labels-background:#e5f8ff;--base-size-8:0.5rem;--base-size-16:1rem;--borderColor-default:#30363d;--borderColor-accent-emphasis:#1f6feb;--borderColor-success-emphasis:#238636;--borderColor-done-emphasis:#8957e5;--borderColor-attention-emphasis:#9e6a03;--borderColor-danger-emphasis:#da3633;--fgColor-accent:#4493f8;--fgColor-success:#3fb950;--fgColor-done:#a371f7;--fgColor-attention:#d29922;--fgColor-danger:#f85149}body #grid-box .NoLabels{background:#e5f8ff;background:var(--no-labels-background);padding:2rem 0}body #grid-box .NoLabels .CategoryList{font-size:.875rem}body #grid-box .NoLabels .CategoryList label>span{margin-left:.5rem}body #grid-box .NoLabels .Entry-box{display:block;font-size:.875rem;line-height:1rem;padding:.25rem 0}body #grid-box .NoLabels .Entry-box a{cursor:pointer}body #grid-box .NoLabels legend{font-size:1.1rem}#cb-item-finder-grid-box>.grid>.no-results{color:rgba(0,0,0,.667);display:block;padding:.5rem}.not-found-box{text-align:center}.not-found{display:inline-block;margin:6rem 0;padding:1.5rem 0 1.5rem 8rem;position:relative;text-align:left}.not-found h3{margin-bottom:.25rem}.not-found i{color:rgba(0,0,0,.25);display:block;font-size:8rem;left:0;line-height:8rem;position:absolute;top:0;vertical-align:middle}.not-found i.icon-plug{color:#000;font-size:6rem;left:.5rem;transform:scaleX(-1)}.markdown-alert{border-left:.25em solid #30363d;border-left:.25em solid var(--borderColor-default);color:inherit;margin-bottom:16px;padding:.5rem 1rem;padding:var(--base-size-8) var(--base-size-16)}.markdown-alert .markdown-alert-title{align-items:center;display:flex;font-weight:600;line-height:1}.octicon{fill:currentcolor;display:inline-block;margin-right:8px;overflow:visible!important;vertical-align:text-bottom}.markdown-alert>:first-child{margin-top:0}.markdown-alert.markdown-alert-note{border-left-color:#1f6feb;border-left-color:var(--borderColor-accent-emphasis)}.markdown-alert.markdown-alert-note .markdown-alert-title{color:#4493f8;color:var(--fgColor-accent)}.markdown-alert.markdown-alert-tip{border-left-color:#238636;border-left-color:var(--borderColor-success-emphasis)}.markdown-alert.markdown-alert-tip .markdown-alert-title{color:#3fb950;color:var(--fgColor-success)}.markdown-alert.markdown-alert-important{border-left-color:#8957e5;border-left-color:var(--borderColor-done-emphasis)}.markdown-alert.markdown-alert-important .markdown-alert-title{color:#a371f7;color:var(--fgColor-done)}.markdown-alert.markdown-alert-warning{border-left-color:#9e6a03;border-left-color:var(--borderColor-attention-emphasis)}.markdown-alert.markdown-alert-warning .markdown-alert-title{color:#d29922;color:var(--fgColor-attention)}.markdown-alert.markdown-alert-caution{border-left-color:#da3633;border-left-color:var(--borderColor-danger-emphasis)}.markdown-alert.markdown-alert-caution .markdown-alert-title{color:#f85149;color:var(--fgColor-danger)}#plugin-spinner{color:rgba(0,0,0,.33);cursor:pointer;display:block;left:0;padding:5rem 0;position:absolute;right:0;text-align:center;text-shadow:0 1px 1px #fff}#plugin-spinner>.swing{display:inline-block;padding:1rem}#plugin-spinner .icon-jenkins{display:block;font-size:10.5rem}.swing div{background:#fff;border:1px solid #69c;border-radius:50%;box-shadow:inset 0 0 1px #039,inset 0 0 0 1px #fff,0 5px 3px -2px rgba(0,0,0,.15),inset -5px -5px 7px 1px #168bb9,inset -4px -6px 10px 10px #69c;display:inline-block;height:32px;width:32px}.spinner-wrapper{margin:2rem auto auto;width:2rem}@keyframes ball-l{0%,50%{transform:rotate(0) translateX(0)}to{transform:rotate(0deg) translateX(-2.5em)}}@keyframes ball-r{0%{transform:rotate(0deg) translateX(2.5em)}50%,to{transform:rotate(0) translateX(0)}}@keyframes shadow-l-n{0%,50%{opacity:.5;transform:translateX(0)}to{opacity:.125;transform:translateX(-1.75em)}}@keyframes shadow-r-n{0%{opacity:.125;transform:translateX(1.75em)}50%,to{opacity:.5;transform:translateX(0)}}.swing-l{animation:ball-l .425s ease-in-out infinite alternate}.swing-r{animation:ball-r .425s ease-in-out infinite alternate}.maintainers>.maintainer{display:block}#pluginPage #grid-box .sidebar>.btn{display:block;margin-bottom:1rem;padding:.5rem 1rem .75rem 3.5rem;position:relative;text-align:left}#pluginPage #grid-box .sidebar>.btn i{font-size:2.25rem;left:.75rem;position:absolute;top:.5rem}#pluginPage #grid-box .sidebar>.btn>span{font-size:1.1rem;font-weight:500;line-height:1.3rem}#pluginPage #grid-box .sidebar>.btn>.v{display:block;font-size:.75rem;font-weight:200;white-space:normal}#pluginPage #grid-box .sidebar .lbl{display:inline-block;margin-right:.5rem}##pluginPage #grid-box .sidebar .label-link a{display:block;line-height:1.5rem;padding:4px 0}#pluginPage #grid-box .sidebar .chart{margin:1rem 0 0}.sidebar .sidebarSection{border-top:1px solid #aaa;margin-top:1rem;padding-top:.5rem}#pluginPage #grid-box{font-size:.875rem;margin-left:15px;margin-right:15px}#pluginPage #grid-box .download{margin:2rem 0 2rem -.5rem}#pluginPage #grid-box .alert>.alert-icon{background-position:top;background-repeat:no-repeat;background-size:3rem;display:inline-block;height:3rem;left:1rem;opacity:.54;position:absolute;top:calc(50% - 1.5rem);width:3rem}#grid-box .pluginContainer{margin:auto;max-width:72rem}.alert-warning .alert-icon .main-path{fill:#856404}.alert-danger .alert-icon .main-path{fill:#721c24}#pluginPage #grid-box .alert-with-icon{min-height:4rem;padding-left:5rem}#pluginPage #grid-box .security-warning-list{list-style:none;padding-left:0}#pluginPage #grid-box .active-warning{font-size:1rem;font-weight:bolder;margin-bottom:0}.row.flex{display:flex}.title-wrapper{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin:1rem auto 0;max-width:72rem;padding-left:15px;padding-right:15px}.plugin-id{margin-bottom:.5rem;opacity:.7}.content h1{font-size:2rem;margin:1.5rem 0 1rem}.content h2{font-size:1.5rem;margin-top:1.5rem}.content h3{font-size:1.25rem}.content h4{font-size:1.1rem}.filters .mask li>label{opacity:.5;position:relative}.filters .mask li>label:hover{color:#168bb9;opacity:1}.filters .mask li>label:before{background:#168bb9;content:"";display:block;font-size:0;height:.5rem;margin:.25rem .4rem;position:absolute;width:.5rem}.filters .mask li input[type=checkbox]{visibility:hidden}.filters label{cursor:pointer}.filterOptions{display:none}body .item-finder.Tiles .Entry-box{display:inline-block}.categories-box .list-group{box-shadow:0 3px 2px -1px rgba(0,0,0,.1);margin-top:-2.75rem;position:relative;z-index:2}.categories-box .list-group>.label{background:rgba(0,0,0,.5);border:none;border-radius:0;border-top-right-radius:10px;display:block}.categories-box .list-group>.label>.list-group-item{background:none;border:none;color:#fff;font-size:1rem;text-align:left}button.nav-link{background:#f9f9f9;border:1px solid #ccc;border-radius:3px;box-shadow:0 2px 4px -3px rgba(0,0,0,.25)}button.nav-link b{color:#666}.form-inline>.form-control.nav-link{background:#f9f9f9;border:1px solid #ccc;border-radius:3px;box-shadow:inset 0 2px 4px -2px rgba(0,0,0,.25);margin:0;padding:.25rem;width:11rem}.Tile,body .item-finder.Tiles a.item{background:#fff;border:.1rem solid #ccc;border-radius:3px;box-sizing:border-box;color:#666;display:block;font-size:.875rem;height:16.5rem;margin:.25rem;opacity:.9;padding:.67rem;-webkit-text-decoration:none!important;text-decoration:none!important;width:13rem}body .item-finder.Tiles .grid-box>div{padding:.5rem 0 2rem .5rem;text-align:left}body .item-finder.List a.item>div,body .item-finder.Tiles a.item>div{display:block;left:auto;position:relative;top:auto;width:auto}.Tile:hover,body .item-finder.Tiles a.item:hover{border:.1rem solid #999;box-shadow:0 2px 3px rgba(0,0,0,.25);opacity:1;-webkit-text-decoration:none;text-decoration:none}.Tile:hover h4,body .item-finder.Tiles a.item .Title:hover h4{color:#069}.Tile .Icon,body .item-finder.Tiles a.item .Icon{bottom:0;display:block;opacity:.75;position:absolute;right:.75rem}body .item-finder.Tiles a.item:hover .Icon{opacity:1}.Tile .Icon>i,body .item-finder.List a.item .Icon>i,body .item-finder.Tiles a.item .Icon>i{border-radius:3px;color:#fff;display:inline-block;font-size:1.33rem;font-style:normal;height:3rem;line-height:3rem;margin:-1px 0 0 -1px;text-shadow:rgba(0,0,0,.5) 1px 2px 1px;width:3rem}body .item-finder.Tiles a.item .Icon>i{margin-bottom:1rem}.Tile .Score,body .item-finder a.item .Score{margin:0 0 .67rem}.Tile .Score>.scr_4:after,body .item-finder a.item .Score>.scr_4:after{content:"\2605 \2605 \2605 \2605 \2606";display:block;text-align:center}.Tile .Downloads,body .item-finder a.item .Downloads{color:#999;font-size:.75rem;margin:0}.Tile .Labels,body .item-finder.Tiles a.item .Labels{line-height:.75rem;margin:.25rem 0;max-height:2rem;min-height:1rem;overflow:hidden}.Tile .Version span,body .item-finder.Tiles a.item .Version span{margin-right:.25rem}.Tile .Version span.v,body .item-finder.Tiles a.item .Version span.v{display:none;margin-right:1rem}.Tile .Version span.c:after,body .item-finder.Tiles a.item .Version span.c:after{content:"+"}body div .item-finder a.item>.Wiki{display:none}.Tile .Excerpt,body .item-finder.Tiles a.item .Excerpt{height:4.4rem;line-height:1.1rem;margin:0;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:normal}body .item-finder a.item .Excerpt a{color:#666;-webkit-text-decoration:none;text-decoration:none}.Tile .Excerpt div,.Tile .Excerpt p,body .item-finder.Tiles a.item .Excerpt div,body .item-finder.Tiles a.item .Excerpt p{display:inline}.Tile .Excerpt:after,.Tile h4:after,body .item-finder.Tiles a.item .Excerpt:after,body .item-finder.Tiles a.item h4:after{bottom:0;box-shadow:inset -250px 0 250px -200px #fff;content:" ";display:block;height:19px;height:1.1rem;position:absolute;right:0;width:100%}.Tile h4,body .item-finder a.item h4{color:#000;font-size:1rem;font-weight:400;line-height:1.1rem;margin:0 0 .25rem;max-height:2.2rem;overflow:hidden;position:relative}body .item-finder.Tiles a.item h4{min-height:2.2rem}.Tile .Authors>div,body .item-finder.List a.item .Authors>div,body .item-finder.List a.item .Labels>span,body .item-finder.List a.item .Version,body .item-finder.Tiles a.item .Authors>div,body .item-finder.Tiles a.item .Labels>span,body .item-finder.Tiles a.item .Version{color:var(--link-color);font-size:.75rem;line-height:1rem;margin-right:.5rem}body .item-finder.Tiles a.item .Authors{bottom:1rem;max-width:8rem;overflow:hidden;position:absolute;white-space:nowrap}.VirtualScroll>div>div{display:inline-block;height:auto!important;padding:.25rem;position:static!important;text-align:left;vertical-align:top;width:auto!important}.VirtualScroll>div>div.spinner{height:40px!important;margin:100px auto!important;overflow:hidden;position:relative!important;text-indent:999rem;white-space:nowrap;width:40px!important}.spinner .double-bounce2{animation:sk-bounce 2s ease-in-out infinite;background-color:rgba(0,0,0,.2);border-radius:50%;height:100%;left:0;opacity:.6;position:absolute;top:0;width:100%}.double-bounce2{animation-delay:-1s}@keyframes sk-bounce{0%,to{transform:scale(0)}50%{transform:scale(1)}}.tbody{display:table}.tbody>.thead{display:table-header-group}.tbody>.thead>.tr{display:table-row}.tbody>.thead>.tr>div{border-bottom:1px solid #ccc;display:table-cell;padding:.25rem}.tbody>.Row,body .item-finder.Table .Entry-box{display:table-row-group}.tbody>.Row>.Tile,body .item-finder.Table a.Entrty{display:table-row;height:auto;margin:0;padding:0;width:auto}.tbody>.Row>.Tile>div,body .item-finder.Table a.Entry>div{border-bottom:1px solid #eee;display:table-cell;height:auto;max-height:3.3rem;padding:.25rem}body .item-finder.Table a.Entry>div.Score{font-size:.875rem;margin:0;position:static}body .item-finder.Table a.Entry>div.Wiki{display:none}.tbody>.Row>.Tile>div.Title,body .item-finder.Table a.Entry>div.Title{width:20%}body .item-finder.Table a.Entry>div.Title>h4{color:#369;font-size:.875rem;font-weight:700}.tbody>.Row>.Tile>div.Icon,body .item-finder.Table a.Entry>div.Icon{display:none}.tbody>.Row>.Tile>div.Authors>div,body .item-finder.Table a.Entry>div.Authors>div{white-space:nowrap}.list>.list>.thead{display:none}.list>.item>.Tile,body .item-finder.List a.Entry{display:block;height:auto;padding:.5rem .5rem .5rem 6rem;position:relative;text-align:left;width:auto}.list>.item>.Tile>.Icon,.list>.item>.Tile>.Score,body .item-finder.List a.Entry .Icon,body .item-finder.List a.Entry .Score{left:.5rem;position:absolute;width:5rem}.list>.item>.Tile>.Score,body .item-finder.List a.Entry .Score{top:4rem}.list>.item>.Tile>.Excerpt,body .item-finder.List a.Entry .Excerpt{height:auto;margin:.5rem 0;max-height:3.3rem}.list>.item>.Tile>.Authors,body .item-finder.List a.Entry .Authors{margin:0}.list>.item>.Tile>.Authors>div,body .item-finder.List a.Entry .Authors>div{display:inline-block}.overview{padding-top:1.5rem}.overview p{font-size:1.1rem}body .btn-primary{background:#d24939;border-color:#900;color:#fff}body .btn-primary:hover{background:#335061;border-color:#88c5cc}nav .nav-item.active{box-shadow:inset 0 -2px #d33833}#cb-grid-toolbar .navbar-nav .nav-item{margin-left:.5rem}#cb-grid-toolbar .navbar-nav .nav-link{padding:.33rem}#cb-grid-toolbar .nav-link.dropdown-toggle{padding:.25rem .5rem}.categories-box .filter-keys.dropdown-menu{background:#f9f9f9;border-color:#ccc;border-radius:0;display:block;float:none;margin:-1px 0 0;max-width:9999rem;padding:0;position:static;width:auto}.categories-box .filter-keys.dropdown-menu a{color:#999;display:block;font-size:.875rem;padding:1px 2px;position:relative;width:auto}.categories-box .filter-keys.dropdown-menu a:hover{box-shadow:inset 0 100px rgba(0,0,0,.06)}.categories-box .filter-keys.dropdown-menu a:nth-child(odd){background:#eee}.categories-box .filter-keys.dropdown-menu a span{color:#369;display:inline-block;padding:.25rem 0 .25rem 2.25rem}.categories-box .filter-keys.dropdown-menu a .count{padding:.25rem .75rem;position:absolute;right:0;text-align:right;width:5rem}body .list-group>li>a.active,body .list-group>li>a.active:active,body .list-group>li>a.active:hover{background:#fff!important;box-shadow:inset 0 99rem rgba(200,240,255,.67);color:#000!important}#download-menu>.dropdown-menu{padding:2rem;width:50rem}nav .form-inline .input-group>.form-control{border-color:#900;transition:all .5s ease}form.showFilter nav .form-inline .ShowFilter{background:#900}nav .form-inline .input-group>.form-control:focus{border-color:red}form.search{float:right;opacity:.9}nav form.search .input-group:focus>input.form-control,nav form.search .input-group:hover>input.form-control,nav form.search .input-group>input.form-control:focus{opacity:1;width:12rem}.cardGroup{display:flex;overflow:hidden}.cardGroup__card{border:none;border-radius:0;flex:1 1 0%}a.card:hover{background-color:#eef3f5}.cardGroup__card+.cardGroup__card{border-left:1px solid #d7dbdd}.cardGroup__cardDescription{flex:1 1 auto}.card{border:1px solid #cad0d2;border-radius:4px;overflow:hidden}.card,.card__description{display:flex;flex-direction:column}.card__description{align-items:center;justify-content:center;padding:15px 0}.svg-icon{fill:#168bb9}.header .svg-icon{fill:#fff}.card__descriptionIcon{font-size:32px;margin-bottom:10px}.card__descriptionText{color:#57727c;font-size:18px;max-width:calc(100% - 30px);text-align:center}.card--fixedWidth{max-width:120px}.featureListItem{align-items:center;display:flex;padding:10px}.featureListItem+.featureListItem{border-top:1px solid #d7dbdd}.featureListItem--reverse{flex-direction:row-reverse}.featureListItem__description,.featureListItem__icon{padding:5px 15px}.featureListItem__icon{font-size:50px;line-height:0}.featureListItem__description{color:#000;width:100%}.formFooter{display:flex;overflow:hidden;width:100%}.formFooter__section{flex:1 1 100%}.formFooter__item+.formFooter__item{margin-left:5px}.underline{border-bottom:1px solid #cad0d2;border-radius:4px}#pluginPage #grid-box .content .main table{border:1px solid silver}#pluginPage #grid-box .content .main td{padding:1em}#grid-box .content{padding-top:1rem;word-break:break-word}#grid-box .content table{word-break:normal}.code-wrapper pre,.markdown-body pre{background-color:#f6f8fa;background-color:var(--code-background);border-radius:4px;padding:16px}.markdown-body clipboard-copy{display:none}@media (min-width:576px){.modal-dialog.wide{margin:.5rem auto;max-width:none}}@media (min-width:776px){.modal-dialog.wide{max-width:700px}}@media (prefers-color-scheme:dark){body{--no-labels-background:#212529;--code-background:#111;--search-background:#313539;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222,226,230,.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222,226,230,.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:hsla(0,0%,100%,.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}.btn-close{filter:var(--bs-btn-close-white-filter)}}@font-face{font-family:ji;font-style:normal;font-weight:400;src:url(/static/ji-06ec8f35b7fcf628bc6eadd35a1af855.ttf) format("truetype"),url(/static/ji-d09d228cf69136a06df3444806157d4d.woff) format("woff"),url(/static/ji-351ec2c6ddd54431698e9cdfbc45c4bf.svg#ji) format("svg")}@font-face{font-family:icomoon;font-style:normal;font-weight:400;src:url(/static/icomoon-067def7ea015b2fb62e5bc963c5eec42.eot);src:url(/static/icomoon-067def7ea015b2fb62e5bc963c5eec42.eot#iefix) format("embedded-opentype"),url(/static/icomoon-3539e0715542420d24bb9fd27f21d3f8.ttf) format("truetype"),url(/static/icomoon-341ea04290ca1f972b7316b4fecd09b9.woff) format("woff"),url(/static/icomoon-3456ed3433d20110c82d649f1f0c6fb6.svg#icomoon) format("svg")}[class*=" icon-"],[class^=icon-]{speak:none;font-feature-settings:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:ji,sans-serif!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.icon-jira:before{content:"\e677"}.icon-hipchat:before{content:"\e67e"}.icon-AWS_Elastic_BeanStalk:before{content:"\e67b"}.icon-mercurial:before{content:"\e673"}.icon-bitbucket:before{content:"\e67f"}.icon-git-logo:before{content:"\e674"}.icon-github:before{content:"\e675"}.icon-subversion:before{content:"\e676"}.icon-pivotal:before{content:"\e660"}.icon-vmware:before{content:"\e65e"}.icon-ec2:before{content:"\e65f"}.icon-siren:before{content:"\e656"}.icon-cloudbees-logo:before{content:"\e64a"}.icon-code:before{content:"\e647"}.icon-docker:before{content:"\e640"}.icon-fingerprint:before{content:"\e63a"}.icon-groovy:before{content:"\e638"}.icon-grails:before{content:"\e637"}.icon-git:before{content:"\e635"}.icon-sbt:before{content:"\e636"}.icon-gradle:before{content:"\e634"}.icon-ant:before{content:"\e632"}.icon-service:before{content:"\e62a"}.icon-service-o:before{content:"\e62b"}.icon-menu:before{content:"\e620"}.icon-build-hand:before{content:"\e61b"}.icon-featured_play_list:before{content:"\e90e"}.icon-menu2:before{content:"\e66b"}.icon-content-paste:before{content:"\e666"}.icon-format-color-fill:before{content:"\e658"}.icon-puzzle:before{content:"\e64f"}.icon-lightbulb:before{content:"\e901"}.icon-flow-merge:before{content:"\e671"}.icon-flow-switch:before{content:"\e672"}.icon-thermometer:before{content:"\e659"}.icon-arrow-shuffle:before{content:"\e630"}.icon-arrow-right:before{content:"\e631"}.icon-chat-3:before{content:"\e680"}.icon-health:before{content:"\e657"}.icon-grid:before,.icon-icons:before{content:"\e90f"}.icon-book2:before{content:"\e909"}.icon-screwdriver:before{content:"\e668"}.icon-clipboard:before{content:"\e667"}.icon-calendar:before{content:"\e663"}.icon-maven:before{content:"\e633"}.icon-brick-menu-o:before{content:"\e62c"}.icon-brick-o:before{content:"\e62d"}.icon-gear-menu-o:before{content:"\e627"}.icon-gear-menu:before{content:"\e626"}.icon-brick-menu:before{content:"\e621"}.icon-folder-menu:before{content:"\e622"}.icon-jenkins-alt:before{content:"\e617"}.icon-jenkins:before{content:"\e618"}.icon-jenkins-o:before{content:"\e619"}.icon-brick:before{content:"\e61a"}.icon-checkbox-checked:before{content:"\e623"}.icon-bulb:before{content:"\e900"}.icon-phone:before{content:"\e642"}.icon-checkmark:before{content:"\e681"}.icon-map-pin-fill:before{content:"\e678"}.icon-box-add:before{content:"\e67d"}.icon-box-remove:before{content:"\e67c"}.icon-clock:before{content:"\e661"}.icon-plug:before{content:"\e64e"}.icon-refresh:before{content:"\e679"}.icon-search:before{content:"\e63f"}.icon-move:before{content:"\e615"}.icon-bug:before{content:"\e611"}.icon-tools:before{content:"\e669"}.icon-pulse:before{content:"\e655"}.icon-key:before{content:"\e653"}.icon-lock:before{content:"\e64b"}.icon-gear:before{content:"\e624"}.icon-repo-forked:before{content:"\e610"}.icon-issue-closed:before{content:"\e608"}.icon-lightning:before{content:"\e603"}.icon-rainy:before{content:"\e604"}.icon-cloud:before{content:"\e605"}.icon-cloudy:before{content:"\e606"}.icon-sun:before{content:"\e607"}.icon-office:before{content:"\e600"}.icon-pencil:before{content:"\e905"}.icon-quill:before{content:"\e62e"}.icon-book:before{content:"\e63c"}.icon-copy:before{content:"\e66e"}.icon-copy2:before{content:"\e66f"}.icon-tag:before{content:"\e61c"}.icon-support:before{content:"\e66c"}.icon-phone2:before{content:"\e66d"}.icon-map:before{content:"\e651"}.icon-stopwatch:before{content:"\e648"}.icon-mobile:before{content:"\e643"}.icon-users:before{content:"\e641"}.icon-wrench:before{content:"\e66a"}.icon-settings:before{content:"\e614"}.icon-hammer:before{content:"\e601"}.icon-aid:before{content:"\e654"}.icon-pie:before{content:"\e65b"}.icon-stats:before{content:"\e639"}.icon-bars:before{content:"\e65c"}.icon-rocket:before{content:"\e649"}.icon-remove:before{content:"\e664"}.icon-signup:before{content:"\e682"}.icon-list:before{content:"\e910"}.icon-download:before{content:"\e670"}.icon-globe:before{content:"\e652"}.icon-flag:before{content:"\e644"}.icon-bookmark:before{content:"\e906"}.icon-star:before{content:"\e907"}.icon-star2:before{content:"\e908"}.icon-cancel-circle:before{content:"\e665"}.icon-loop:before{content:"\e65d"}.icon-table:before{content:"\e911"}.icon-insert-template:before{content:"\e64d"}.icon-console:before{content:"\e628"}.icon-facebook:before{content:"\e902"}.icon-facebook2:before{content:"\e903"}.icon-twitter:before{content:"\e904"}.icon-file-css:before{content:"\e629"}.icon-grid-alt:before{content:"\e912"}.icon-menu3:before{content:"\e913"}.icon-list2:before{content:"\e914"}.icon-screen:before{content:"\e60b"}.icon--:before{content:"\e90a"}.icon-help:before{content:"\e67a"}.icon-feather-o:before{content:"\e62f"}.icon-compass:before{content:"\e61d"}.icon-graduation:before{content:"\e65a"}.icon-box:before{content:"\e63b"}.icon-logout:before{content:"\e90b"}.icon-flow-cascade:before{content:"\e61e"}.icon-flow-branch:before{content:"\e60c"}.icon-flow-tree:before{content:"\e60d"}.icon-list-ul:before{content:"\e915"}.icon-stethoscope:before{content:"\e90d"}.icon-code-fork:before{content:"\e90c"}.icon-calendar-o:before{content:"\e662"}.icon-ban:before{content:"\e64c"}.icon-flag-checkered:before{content:"\e645"}.icon-envelope-o:before{content:"\e63d"}.icon-envelope:before{content:"\e63e"}.icon-cog:before{content:"\e625"}.icon-puzzle-piece:before{content:"\e61f"}.icon-folder-open-o:before{content:"\e60e"}.icon-folder-o:before{content:"\e60f"}.icon-thumbs-o-down:before{content:"\e609"}.icon-thumbs-o-up:before{content:"\e60a"}.icon-enlarge:before{content:"\e650"}.icon-shield:before{content:"\e646"}.icon-factory:before{content:"\e616"}.icon-unlocked:before{content:"\e612"}.icon-locked:before{content:"\e613"}.icon-uniE602:before{content:"\e602"} /*! * GitHub Light v0.5.0 * Copyright (c) 2012 - 2017 GitHub, Inc. * Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE) */.pl-c{color:#6a737d}.pl-c1,.pl-s .pl-v{color:#005cc5}.pl-e,.pl-en{color:#6f42c1}.pl-s .pl-s1,.pl-smi{color:#24292e}.pl-ent{color:#22863a}.pl-k{color:#d73a49}.pl-pds,.pl-s,.pl-s .pl-pse .pl-s1,.pl-sr,.pl-sr .pl-cce,.pl-sr .pl-sra,.pl-sr .pl-sre{color:#032f62}.pl-smw,.pl-v{color:#e36209}.pl-bu{color:#b31d28}.pl-ii{background-color:#b31d28;color:#fafbfc}.pl-c2{background-color:#d73a49;color:#fafbfc}.pl-c2:before{content:"^M"}.pl-sr .pl-cce{color:#22863a;font-weight:700}.pl-ml{color:#735c0f}.pl-mh,.pl-mh .pl-en,.pl-ms{color:#005cc5;font-weight:700}.pl-mi{color:#24292e;font-style:italic}.pl-mb{color:#24292e;font-weight:700}.pl-md{background-color:#ffeef0;color:#b31d28}.pl-mi1{background-color:#f0fff4;color:#22863a}.pl-mc{background-color:#ffebda;color:#e36209}.pl-mi2{background-color:#005cc5;color:#f6f8fa}.pl-mdr{color:#6f42c1;font-weight:700}.pl-ba{color:#586069}.pl-sg{color:#959da5}.pl-corl{color:#032f62;-webkit-text-decoration:underline;text-decoration:underline}@media (prefers-color-scheme:dark){.pl-c{color:#959da5}/*! * GitHub Dark v0.5.0 * Copyright (c) 2012 - 2017 GitHub, Inc. * Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE) */.pl-c1,.pl-s .pl-v{color:#c8e1ff}.pl-e,.pl-en{color:#b392f0}.pl-s .pl-s1,.pl-smi{color:#f6f8fa}.pl-ent{color:#7bcc72}.pl-k{color:#ea4a5a}.pl-pds,.pl-s,.pl-s .pl-pse .pl-s1,.pl-sr,.pl-sr .pl-cce,.pl-sr .pl-sra,.pl-sr .pl-sre{color:#79b8ff}.pl-ml,.pl-v{color:#fb8532}.pl-bu{color:#d73a49}.pl-c2,.pl-ii{background-color:#d73a49;color:#fafbfc}.pl-c2:before{content:"^M"}.pl-sr .pl-cce{color:#7bcc72;font-weight:700}.pl-mh,.pl-mh .pl-en,.pl-ms{color:#0366d6;font-weight:700}.pl-mi{color:#f6f8fa;font-style:italic}.pl-mb{color:#f6f8fa;font-weight:700}.pl-md{background-color:#ffeef0;color:#b31d28}.pl-mi1{background-color:#f0fff4;color:#176f2c}.pl-mc{background-color:#fffdef;color:#b08800}.pl-mi2{background-color:#959da5;color:#2f363d}.pl-mdr{color:#b392f0;font-weight:700}.pl-mo{color:#0366d6}.pl-ba{color:#ffeef0}.pl-sg{color:#6a737d}.pl-corl{color:#79b8ff;-webkit-text-decoration:underline;text-decoration:underline}}.InstallViaCLI-module--root--e7571{line-height:2rem;position:relative}.InstallViaCLI-module--root--e7571 span{margin-right:5px}.InstallViaCLI-module--root--e7571 code{display:block;margin-right:3rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ClipboardButton-module--copy-wrapper--e75f0{bottom:0;min-height:2rem;position:absolute;right:0}.ClipboardButton-module--copy-wrapper--e75f0 img{opacity:.87}.ClipboardButton-module--copy-success--e2048{line-height:1rem;position:absolute;right:4rem;white-space:nowrap}@media (prefers-color-scheme:dark){.ClipboardButton-module--copy-wrapper--e75f0 img{filter:invert(1)}}.PluginWikiContent-module--lightbox--13a29{align-items:center;background-color:rgba(0,0,0,.5);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}.PluginWikiContent-module--lightbox--13a29 img{box-shadow:0 0 20px rgba(0,0,0,.5);max-height:90%;max-width:90%}.PluginWikiContent-module--lightbox--13a29 img:hover{cursor:pointer}.pluginHealth>div:last-child{margin-bottom:2rem}#pluginHealth--score{align-items:center;display:flex;justify-content:space-evenly;line-height:1;padding:20px 0 30px}#pluginHealth--score #pluginHealth--score-value{font-size:64px}#pluginHealth--score #pluginHealth--score-unit{font-size:24px}#pluginHealth--score #pluginHealth--score-label{font-size:14px;text-align:center;text-transform:uppercase}.pluginHealth--score-section{border-top:1px solid silver;padding:13px 0}.pluginHealth--score-section:last-of-type{border-bottom:1px solid silver;margin-bottom:2rem}.pluginHealth--score-section--collapsible-icon{display:flex;justify-content:flex-end;width:24px}.pluginHealth--score-section--collapsible-icon ion-icon{width:14px}.pluginHealth--score-section--header{align-items:center;cursor:pointer;display:flex;font-size:1.5rem;height:3rem;line-height:3rem;margin-top:.5rem}.pluginHealth--score-section--header--icon{align-items:center;display:flex;width:24px}.pluginHealth-score-icon--incorrect{color:#e6001f}.pluginHealth-score-icon--correct{color:#1ea64b}.pluginHealth--score-section--header-title{flex-grow:1;font-size:2rem;font-weight:400}.pluginHealth--score-section--header-score{font-size:1.5rem;font-weight:400}.pluginHealth--score-section--header-icon{width:40px}.pluginHealth-score-components--list{padding-left:40px;padding-right:24px}.pluginHealth-score-components--list.collapse{visibility:collapse}.pluginHealth--score-component{align-items:flex-start;display:flex;line-height:1.75;margin:14px 0 16px}.pluginHealth--score-component--icon{line-height:1;margin-right:6px}.pluginHealth--score-component--reasons{align-items:flex-start;display:flex;flex-direction:column;flex-grow:1}.pluginHealth--score-component--reasons span{line-height:1}#pluginReleases--container{margin-top:10px}#pluginReleases--container .item{margin-bottom:10px}#pluginReleases--container .card-text h2{font-size:1.4rem}#pluginReleases--container .card-text h3{font-size:1.2rem}#pluginReleases--container .card-text h4{font-size:1.1rem}#pluginReleases--container .card-text h5{font-size:1rem}#pluginReleases--container .github-icon{margin-left:7px}:root{--plugin-icon-width:2.25em;--plugin-padding:0.25em;--search-background:#eae9e8}#searchpage #grid-box{background:#eae9e8;background:var(--search-background)}.SearchResults--GridBox{display:flex;flex-flow:row wrap;justify-content:center;margin:0 2rem}.SearchResults--ItemBox{background:var(--background);border:.1rem solid #ccc;border-radius:3px;box-sizing:border-box;color:var(--bs-secondary);display:block;flex:0 0 auto;font-size:.85rem;height:19.5rem;margin:.25rem;min-height:6rem;opacity:.9;padding:.67rem;position:relative;text-align:left;-webkit-text-decoration:none!important;text-decoration:none!important;width:13rem}@media (max-width:768px){.SearchResults--ItemBox{width:calc(100% - .4rem)}}.SearchResults--ItemBox:hover{border:.1rem solid #999;box-shadow:0 2px 3px rgba(0,0,0,.25);cursor:pointer;opacity:1;-webkit-text-decoration:none;text-decoration:none}.Plugin--PluginContainer{display:block;height:100%;position:relative}.Plugin--PluginContainer *{color:var(--color)}.Plugin--PluginContainer a,.Plugin--PluginContainer a:visited{color:var(--link-color)}.Plugin--PluginContainer:hover{-webkit-text-decoration:none;text-decoration:none}.Plugin--IconContainer{bottom:3rem;display:block;grid-area:icon;opacity:.75;position:absolute;right:.25rem;z-index:9}.Plugin--IconContainer i{border-radius:3px;color:#fff;display:inline-block;font-size:1.33rem;font-style:normal;height:3rem;line-height:3rem;margin:-1px 0 0 -1px;text-align:center;text-shadow:rgba(0,0,0,.5) 1px 2px 1px;width:2.25em;width:var(--plugin-icon-width)}.Plugin--IconContainer i *{color:inherit}.Plugin--TitleContainer{grid-area:title}.Plugin--TitleContainer h4{color:var(--color);font-size:1rem;font-weight:400;line-height:1.1rem;margin:0 0 .25rem;max-height:2.2rem;overflow:hidden;position:relative}.Plugin--InstallsContainer{color:#999;font-size:.75rem;grid-area:installs;margin:0;padding:0}.Plugin--VersionContainer{color:var(--link-color);font-size:.75rem;grid-area:version;line-height:1rem;margin-right:.5rem;white-space:nowrap}.Plugin--VersionContainer span{margin-right:.25rem}.Plugin--LabelsContainer{grid-area:labels;line-height:.75rem;margin:.25rem 0;max-height:2rem;min-height:1rem;overflow:hidden}.Plugin--LabelsContainer div{color:var(--link-color);display:inline;font-size:.75rem;line-height:1rem;margin-right:.25rem}.Plugin--LabelsContainer div:after{content:", "}.Plugin--LabelsContainer div:last-child:after{content:""}.Plugin--LabelsContainer .label-link{white-space:nowrap}.Plugin--ExcerptContainer{word-wrap:break-word;grid-area:excerpt;height:4.4rem;line-height:1.1rem;margin:0;max-height:4.4rem;min-height:.5rem;overflow:hidden;padding:0;position:relative;text-overflow:ellipsis;white-space:normal}.Plugin--AuthorsContainer{bottom:3rem;grid-area:authors;max-width:8rem;overflow:hidden;position:absolute;white-space:nowrap}.Plugin--AuthorsContainer div{font-size:.75rem;line-height:1rem;margin-right:.5rem}.Plugin--HealthScoreContainer{bottom:0;position:absolute;width:100%}.Plugin--HealthScoreContainer div{display:flex;font-size:1rem;font-weight:700;justify-content:space-between;row-gap:.5rem}.SearchResults--List .SearchResults--ItemBox{height:auto;min-height:0;min-height:auto;width:calc(100% - 1rem)}.SearchResults--List .Plugin--IconContainer{bottom:auto;left:.25em;left:var(--plugin-padding);right:auto;top:.25em;top:var(--plugin-padding)}.SearchResults--List .Plugin--PluginContainer{padding-left:5em;padding-left:calc(var(--plugin-padding) + var(--plugin-icon-width)*2 + var(--plugin-padding));position:relative}.SearchResults--List .Plugin--PluginContainer .Plugin--AuthorsContainer{position:static}.SearchResults--List .Plugin--ExcerptContainer{height:auto;margin-bottom:1rem}.SearchResults--List .Plugin--HealthScoreContainer{margin-top:10px;position:static}.Pagination--Container{align-items:center;display:flex;flex-flow:column wrap;justify-content:center;margin-top:1rem}.SearchResultsCount{text-align:center}.SearchBox--Container .form-group{width:100%}.add-m{margin-left:8rem}@media only screen and (max-width:768px){.add-m{margin-left:1rem;margin-right:1rem}}.IndexPage--Container{align-items:start;background:#168bb9;border-radius:0;color:#fff;display:grid;grid-template-areas:"logo content";justify-content:center;justify-items:center;margin:0;min-height:350px;place-items:start center;text-align:center;transition:all .5s ease-in}.IndexPage--Container .logo{display:inline-block;grid-area:logo;height:294px;width:271px}.IndexPage--Container .content{grid-area:content;max-width:1024px}@media (max-width:992px){.IndexPage--Container{grid-template-areas:"logo" "content"}}.IndexPage--Container p{box-sizing:content-box;font-size:1.1rem;margin:1rem;text-align:center}.IndexPage--Container h1{font-feature-settings:normal;font-family:Georgia,Times,Times New Roman,serif;font-size:64px;font-style:normal;font-variant:normal;font-weight:700;line-height:70px}.IndexPage--Container fieldset{display:block;margin:1em 10%;text-align:center}.IndexPage--Container .input-group>.form-control{max-width:75%}.Filters--Container{background:var(--background);border:1px solid rgba(0,0,0,.2);border-radius:3px;box-shadow:0 1px .5rem rgba(0,0,0,.15);font-size:.85rem;font-weight:200;padding:0 1rem 1.5rem;position:relative;text-align:left}.Filters--Container fieldset{margin-bottom:1rem}.Filters--Container legend{font-size:1rem}.Filters--Container label{display:block;float:none}.Filters--Container li>label>input,.Filters--Container li>label>span{display:inline-block;margin-left:.25rem}.Filters--Container .headerContainer{border-top:1px solid rgba(0,0,0,.1);padding:1rem}.ActiveFilters--FilterBox{text-align:center;white-space:nowrap;width:100%}.ActiveFilters--FilterBox div{display:inline-block;margin-right:.5rem;padding-right:.5rem;white-space:nowrap}.ActiveFilters--FilterBox .nav-link{cursor:pointer;display:inline-block;margin:0 .5rem 0 0}.ActiveFilters--FilterBox .nav-link:before{border:1px solid #ccc;border-radius:2;content:"x ";display:inline-block;font-size:.75rem;line-height:1em;margin:-.133rem .25rem 0 -.75rem;padding:0 0 .1rem;text-align:center;vertical-align:middle;width:1.3em}.SearchByAlgolia-module--root--26db9{padding-left:1em}</style><style type="text/css"> .anchor.before { position: absolute; top: 0; left: 0; transform: translateX(-100%); padding-right: 4px; } .anchor.after { display: inline-block; padding-left: 4px; } h1 .anchor svg, h2 .anchor svg, h3 .anchor svg, h4 .anchor svg, h5 .anchor svg, h6 .anchor svg { visibility: hidden; } h1:hover .anchor svg, h2:hover .anchor svg, h3:hover .anchor svg, h4:hover .anchor svg, h5:hover .anchor svg, h6:hover .anchor svg, h1 .anchor:focus svg, h2 .anchor:focus svg, h3 .anchor:focus svg, h4 .anchor:focus svg, h5 .anchor:focus svg, h6 .anchor:focus svg { visibility: visible; } </style><script> document.addEventListener("DOMContentLoaded", function(event) { var hash = window.decodeURI(location.hash.replace('#', '')) if (hash !== '') { var element = document.getElementById(hash) if (element) { var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop var clientTop = document.documentElement.clientTop || document.body.clientTop || 0 var offset = element.getBoundingClientRect().top + scrollTop - clientTop // Wait for the browser to finish rendering before scrolling. setTimeout((function() { window.scrollTo(0, offset - 0) }), 0) } } }) </script><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript><script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script><title data-react-helmet="true">Gradle | Jenkins plugin</title><link data-react-helmet="true" href="https://www.jenkins.io/favicon.ico" rel="shortcut icon" type="image/x-icon"/><link data-react-helmet="true" href="https://www.jenkins.io/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><link data-react-helmet="true" href="https://www.jenkins.io/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link data-react-helmet="true" href="https://www.jenkins.io/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><link data-react-helmet="true" href="/site.webmanifest" rel="manifest"/><link data-react-helmet="true" color="#5bbad5" href="https://www.jenkins.io/safari-pinned-tab.svg" rel="mask-icon"/><link data-react-helmet="true" href="https://plugins.jenkins.io/gradle" rel="canonical"/><script data-react-helmet="true" src="https://www.jenkins.io/assets/bower/jquery/jquery.min.js"></script><script data-react-helmet="true" src="https://www.jenkins.io/js/copy-to-clipboard.js"></script><script data-react-helmet="true" src="https://www.jenkins.io/assets/bower/anchor-js/anchor.min.js"></script><script data-react-helmet="true" src="https://www.jenkins.io/assets/bower/@popperjs/core/umd/popper.min.js"></script><script data-react-helmet="true" src="https://www.jenkins.io/assets/bower/bootstrap/js/bootstrap.min.js"></script><script data-react-helmet="true" src="https://cdn.jsdelivr.net/npm/lit@3.1.4/polyfill-support.js"></script><script data-react-helmet="true" src="https://cdn.jsdelivr.net/npm/@webcomponents/webcomponentsjs@2.8.0/webcomponents-loader.js"></script><script data-react-helmet="true" data="ionicons" src="https://cdnjs.cloudflare.com/ajax/libs/ionicons/7.3.1/ionicons/ionicons.esm.js" type="module"></script><script data-react-helmet="true" data="ionicons" src="https://cdnjs.cloudflare.com/ajax/libs/ionicons/7.3.1/ionicons/ionicons.js"></script><script data-react-helmet="true" src="https://cdn.jsdelivr.net/npm/@jenkinsci/jenkins-io-components/+esm" type="module"></script><script data-react-helmet="true" src="https://cdn.jsdelivr.net/npm/@jenkinsci/jenkins-io-components/"></script><style data-react-helmet="true">html { min-height:100%; position: relative; }</style><link rel="sitemap" type="application/xml" href="/sitemap-index.xml"/><link rel="canonical" href="https://plugins.jenkins.io/gradle/" data-baseprotocol="https:" data-basehost="plugins.jenkins.io"/><link rel="preconnect" href="https://jenkins-matomo.do.g4v.dev"/></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><div id="pluginPage"><jio-navbar class="fixed-nav" theme="auto" property="https://plugins.jenkins.io/"></jio-navbar><div id="grid-box"><div class="title-wrapper"><h1 class="title">Gradle</h1><button class="app-button">How to install</button></div><div class="row flex pluginContainer flex-column-reverse flex-md-row"><div class="col-md-9 main"><ul class="nav nav-pills"><li class="nav-item"><a aria-current="page" class="nav-link active" href="/gradle/">Documentation</a></li><li class="nav-item"><a class="nav-link" href="/gradle/releases/">Releases</a></li><li class="nav-item"><a class="nav-link" href="/gradle/issues/">Issues</a></li><li class="nav-item"><a class="nav-link" href="/gradle/dependencies/">Dependencies</a></li><li class="nav-item"><a class="nav-link" href="/gradle/healthscore/">Health Score</a></li></ul><div><div class="content"><div><div id="plugin-content-readme" class="adoc" data-path="README.adoc"> <article class="markdown-body entry-content container-lg" itemprop="text"> <div class="markdown-heading" dir="auto"> </div> <div id="plugin-content-user-content-preamble" dir="auto"> <div dir="auto"> <div dir="auto"> <p dir="auto"><span><a href="https://plugins.jenkins.io/gradle" rel="nofollow"><img src="https://camo.githubusercontent.com/bfa95c89ef052450b05b00081f25c9690731fcb09ab5e2f0f996f73a7e327fdd/68747470733a2f2f696d672e736869656c64732e696f2f6a656e6b696e732f706c7567696e2f762f677261646c652e737667" alt="Jenkins Plugin" data-canonical-src="https://img.shields.io/jenkins/plugin/v/gradle.svg" style="max-width: 100%;"></a></span> <span><a href="https://github.com/jenkinsci/gradle-plugin/releases/latest"><img src="https://camo.githubusercontent.com/751e9af725d67f142d7f98880e6cc92967b83227c2a7829bb15900cca6b9aa27/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6a656e6b696e7363692f677261646c652d706c7567696e2e7376673f6c6162656c3d6368616e67656c6f67" alt="gradle plugin" data-canonical-src="https://img.shields.io/github/release/jenkinsci/gradle-plugin.svg?label=changelog" style="max-width: 100%;"></a></span> <span><a href="https://plugins.jenkins.io/gradle" rel="nofollow"><img src="https://camo.githubusercontent.com/007d18811f4efa0a0d3cd75816a64a3e9099a37a90bab0eee501424f289d7f63/68747470733a2f2f696d672e736869656c64732e696f2f6a656e6b696e732f706c7567696e2f692f677261646c652e7376673f636f6c6f723d626c7565" alt="Jenkins Plugin Installs" data-canonical-src="https://img.shields.io/jenkins/plugin/i/gradle.svg?color=blue" style="max-width: 100%;"></a></span></p> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h2 id="plugin-content-description" class="heading-element" dir="auto" style="position: relative">Description<a href="#plugin-content-description" aria-label="description permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h2> </div> <div dir="auto"> <div dir="auto"> <p dir="auto">This plugin adds <a href="http://www.gradle.org/" rel="nofollow">Gradle</a> Support to Jenkins. <a href="http://www.gradle.org/" rel="nofollow">Gradle</a> is managed as another tool inside Jenkins (the same way as Ant or Maven), including support for automatic installation and a new build step is provided to execute Gradle tasks.</p> </div> <div dir="auto"> <p dir="auto">It also detects any <a href="https://gradle.com/build-scans/" rel="nofollow">Develocity</a> Build Scan publications to provide an enhanced job summary for each Gradle or Maven build invocation that occurred during the job.</p> </div> <div dir="auto"> <p dir="auto">You can have the <a href="https://docs.gradle.com/enterprise/gradle-plugin/" rel="nofollow">Develocity Gradle plugin</a> and the <a href="https://docs.gradle.com/enterprise/maven-extension/" rel="nofollow">Develocity Maven extension</a> automatically injected into your Gradle and Maven builds. See <a href="#plugin-content-develocity-integration">Develocity integration</a> for more details.</p> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h2 id="plugin-content-configuration" class="heading-element" dir="auto" style="position: relative">Configuration<a href="#plugin-content-configuration" aria-label="configuration permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h2> </div> <div dir="auto"> <div dir="auto"> <p dir="auto">Gradle configuration is performed in the <strong>Configure System</strong> (before Jenkins 2.0) or <strong>Global Tool Configuration</strong> (starting in Jenkins 2.0). In both cases these options reside in the <strong>Manage Jenkins</strong> section.</p> </div> <div dir="auto"> <p dir="auto">In the <strong>Gradle</strong> section provided by this plugin, several installations can be configured:</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/gradle-tool-installation.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/gradle-tool-installation.png" alt="Tool installations" width="80%" style="max-width: 100%;"></a> </div> </div> <div dir="auto"> <p dir="auto">The system provides both automatic installation, which can be performed by directly downloading a Gradle distribution from the <a href="http://www.gradle.org/" rel="nofollow">Gradle website</a> or executing some shell commands to achieve the same. Besides, for nodes which already have Gradle installed, the tool can be manually configured, by unchecking the <strong>Install automatically</strong> checkbox and providing the base path (as a <code>GRADLE_HOME</code> environment variable) of the installation.</p> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h2 id="plugin-content-usage" class="heading-element" dir="auto" style="position: relative">Usage<a href="#plugin-content-usage" aria-label="usage permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h2> </div> <div dir="auto"> <div dir="auto"> <p dir="auto">The Gradle plugin provides an <strong>Invoke Gradle script</strong> build step.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/gradle-build-step.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/gradle-build-step.png" alt="Build step" width="80%" style="max-width: 100%;"></a> </div> </div> <div dir="auto"> <p dir="auto">The first configuration option is whether to use one of the installation configured in Jenkins (see previous section) of use the <a href="https://docs.gradle.org/current/userguide/gradle_wrapper.html" rel="nofollow">Gradle Wrapper</a> which is the Gradle-provided mechanism to "embed" the use of a specific Gradle version in a build, installing it if necessary.</p> </div> <div dir="auto"> <p dir="auto">Other configuration options include:</p> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">A description to use for the build step.</p> </li> <li> <p dir="auto">Switches (options) to provide to the Gradle execution.</p> </li> <li> <p dir="auto">Tasks to execute (if blank the defaults tasks of the build will be invoked).</p> </li> <li> <p dir="auto">Path to the build script if different from the root directory of the build.</p> </li> <li> <p dir="auto">Name of the build script if different from <code>build.gradle</code>.</p> </li> </ul> </div> <div dir="auto"> <p dir="auto">If a <a href="https://gradle.com/build-scans/" rel="nofollow">Gradle Build Scan</a> is produced during a build, then a link to it is added to the build page.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/jenkins-build-scan.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/jenkins-build-scan.png" alt="Build Scan link" width="60%" style="max-width: 100%;"></a> </div> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h2 id="plugin-content-capturing-build-scans-from-the-console-log" class="heading-element" dir="auto" style="position: relative">Capturing build scans from the console log<a href="#plugin-content-capturing-build-scans-from-the-console-log" aria-label="capturing build scans from the console log permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h2> </div> <div dir="auto"> <div dir="auto"> <p dir="auto">If you are not using the Gradle build step described above, or have a Maven build, you can configure to detect published <a href="https://gradle.com/build-scans/" rel="nofollow">build scans</a> from the console log. For doing so, go to <strong>Build Environment</strong> and check <strong>Inspect build log for published build scans</strong>.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/inspect-logs-for-build-scans.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/inspect-logs-for-build-scans.png" alt="Inspect build log for Build Scan" width="80%" style="max-width: 100%;"></a> </div> </div> <div dir="auto"> <p dir="auto">If build scans are detected in the console log of a build, a badge will be added to the build page. This works for <a href="https://gradle.com/build-scans/" rel="nofollow">build scans</a> produced by Gradle and Maven builds.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/jenkins-build-scan.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/jenkins-build-scan.png" alt="Build Scan link" width="60%" style="max-width: 100%;"></a> </div> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h2 id="plugin-content-capturing-build-scans-from-jenkins-pipeline" class="heading-element" dir="auto" style="position: relative">Capturing build scans from Jenkins Pipeline<a href="#plugin-content-capturing-build-scans-from-jenkins-pipeline" aria-label="capturing build scans from jenkins pipeline permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h2> </div> <div dir="auto"> <div dir="auto"> <p dir="auto">When using Jenkins pipeline, there is the build step wrapper <code>withGradle</code> which can be used to find the build scans emitted by Gradle or Maven builds and show them on the build page. In order to do so, wrap your <code>sh</code> or <code>bat</code> steps which invoke Gradle or Maven into <code>withGradle</code>.</p> </div> <div dir="auto"> <p dir="auto">For example:</p> </div> <div dir="auto"> <div dir="auto"> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="node { withGradle { sh './gradlew build' } }"> <pre class="notranslate"><code>node { withGradle { sh './gradlew build' } }</code></pre> </div> </div> </div> <div dir="auto"> <p dir="auto">This causes the shell output to be highlighted and build scan links, which are published, are captured. The captured build scan links are then shown on the build page and in the pipeline steps view.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/pipeline-steps-scan.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/pipeline-steps-scan.png" alt="Build scan in pipeline view" width="80%" style="max-width: 100%;"></a> </div> </div> <div dir="auto"> <p dir="auto">There is also the <code>findBuildScans()</code> step, which finds the build scans in the complete log of the pipeline job. The <code>withGradle</code> wrapper should be used instead, since it also deals well with parallel output.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/find-build-scans.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/find-build-scans.png" alt="Find build scans" width="80%" style="max-width: 100%;"></a> </div> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h2 id="plugin-content-enriched-build-scans" class="heading-element" dir="auto" style="position: relative">Enriched build scans<a href="#plugin-content-enriched-build-scans" aria-label="enriched build scans permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h2> </div> <div dir="auto"> <div dir="auto"> <p dir="auto">Build scans links on the Job summary page can be enriched with data fetched from the <a href="https://docs.gradle.com/enterprise/api-manual/" rel="nofollow">Develocity server API</a>. If enabled, the project name, requested tasks, build tool version, build outcome and build scan links will be provided. This feature is available for both Gradle and Maven builds and compatible with auto-injection documented below.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/enriched-build-scans.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/enriched-build-scans.png" alt="Enriched build scans" width="80%" style="max-width: 100%;"></a> </div> </div> <div dir="auto"> <blockquote> <div dir="auto"> <p dir="auto"><strong>Note</strong> - Build scans published on the public instance (<a href="https://scans.gradle.com" rel="nofollow">https://scans.gradle.com</a>) are not eligible.</p> </div> </blockquote> </div> <div dir="auto"> <blockquote> <div dir="auto"> <p dir="auto"><strong>Note</strong> - Enabling this feature will trigger 2 HTTP requests to the Develocity server per build scan published.</p> </div> </blockquote> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-enriched-build-scans-configuration" class="heading-element" dir="auto" style="position: relative">Enriched build scans configuration<a href="#plugin-content-enriched-build-scans-configuration" aria-label="enriched build scans configuration permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <p dir="auto">The configuration of the feature can be done in the Jenkins global system configuration.</p> </div> <div dir="auto"> <p dir="auto">The feature can be enabled or disabled (default).</p> </div> <div dir="auto"> <p dir="auto">If anonymous access to the API is not allowed, an access key has to be provided.</p> </div> <div dir="auto"> <p dir="auto">HTTP client settings can also be customized.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/enriched-build-scans-configuration.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/enriched-build-scans-configuration.png" alt="Enriched build scans configuration" width="80%" style="max-width: 100%;"></a> </div> </div> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h2 id="plugin-content-develocity-integration" class="heading-element" dir="auto" style="position: relative">Develocity integration<a href="#plugin-content-develocity-integration" aria-label="develocity integration permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h2> </div> <div dir="auto"> <div dir="auto"> <p dir="auto">The plugin can be configured to inject the <a href="https://docs.gradle.com/enterprise/gradle-plugin/" rel="nofollow">Develocity Gradle plugin</a> or the <a href="https://docs.gradle.com/enterprise/maven-extension/" rel="nofollow">Develocity Maven extension</a> into any Gradle or Maven build that is executed on the Jenkins server or on any of its connected agents. To achieve this, the plugin installs various files on each agent depending on the configuration via the global options in the <code>Manage Jenkins/Configure System</code> section.</p> </div> <div dir="auto"> <p dir="auto">The same auto-injection behavior is available for the <a href="https://github.com/gradle/common-custom-user-data-gradle-plugin">Common Custom User Data Gradle plugin</a> and the <a href="https://github.com/gradle/common-custom-user-data-maven-extension">Common Custom User Data Maven extension</a>.</p> </div> <div dir="auto"> <blockquote> <div dir="auto"> <p dir="auto"><strong>Note</strong> - The configuration applies to all builds on all connected agents matching the specified label criteria, or all in case no label criteria are defined.</p> </div> </blockquote> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-enable-auto-injection" class="heading-element" dir="auto" style="position: relative">Enable auto-injection<a href="#plugin-content-enable-auto-injection" aria-label="enable auto injection permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <p dir="auto">The auto-injection is split into several levels to have fine-grained control over the enablement of this feature.</p> </div> <div dir="auto"> <markdown-accessiblity-table> <div class="table-responsive"><table class="table table-bordered"> <tbody> <tr> <td> <div dir="auto"> Important </div> </td> <td> <div dir="auto"> <p dir="auto">Develocity <code>2024.1</code> or above is required starting from version <code>2.12</code> and above. See <a href="#plugin-content-_short_lived_access_tokens">Short-lived access tokens</a> for more infos.</p> </div> </td> </tr> </tbody> </table></div> </markdown-accessiblity-table> </div> <div dir="auto"> <markdown-accessiblity-table> <div class="table-responsive"><table class="table table-bordered"> <tbody> <tr> <td> <div dir="auto"> Important </div> </td> <td> <div dir="auto"> <p dir="auto">Starting from plugin version <code>2.13</code>, the Maven extension is not bundled with the Jenkins Gradle plugin and requires an explicit version configuration to be injected. When upgrading from an earlier version, the injection will be turned off until the version is configured.</p> </div> </td> </tr> </tbody> </table></div> </markdown-accessiblity-table> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-global" class="heading-element" dir="auto" style="position: relative">Global<a href="#plugin-content-global" aria-label="global permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto">To globally enable the auto-injection, click the <code>Enable auto-injection</code> checkbox in the <code>Develocity integration</code> section of the global options in the <code>Manage Jenkins/Configure System</code> section. Next set the URL of the Develocity instance to which the build scans should be published to.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/enable-auto-injection.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/enable-auto-injection.png" alt="Enable auto-injection" width="80%" style="max-width: 100%;"></a> </div> </div> <div dir="auto"> <p dir="auto">Optionally you can click the <code>Enforce Develocity server url</code> checkbox to enforce the configured Develocity URL over a URL configured in the project’s build (only applies to Gradle projects).</p> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h5 id="plugin-content-vcs-repository-filtering-beta" class="heading-element" dir="auto" style="position: relative">VCS repository filtering (Beta)<a href="#plugin-content-vcs-repository-filtering-beta" aria-label="vcs repository filtering beta permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h5> </div> <div dir="auto"> <p dir="auto">It is also possible to enable/disable injection for specific repositories by specifying VCS repository filters. These are <em>Newline-delimited</em> set of rules in the form of <code>+|-:repository_matching_keyword</code>, which will be used in a contains check against the repository URL.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/general-vcs-repository-filters.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/general-vcs-repository-filters.png" alt="Git VCS repository filters" width="80%" style="max-width: 100%;"></a> </div> </div> <div dir="auto"> <p dir="auto">Consider the following examples:</p> </div> <div dir="auto"> <div dir="auto"> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+:foo"> <pre class="notranslate"><code>+:foo</code></pre> </div> </div> </div> <div dir="auto"> <p dir="auto">The injection will only be performed for Git repository URLs which contain <code>foo</code>.</p> </div> <div dir="auto"> <div dir="auto"> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="-:foo"> <pre class="notranslate"><code>-:foo</code></pre> </div> </div> </div> <div dir="auto"> <p dir="auto">The injection will not be performed for Git repository URLs which contain <code>foo</code>, but will be for all others.</p> </div> <div dir="auto"> <div dir="auto"> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="+:foo -:foobar"> <pre class="notranslate"><code>+:foo -:foobar</code></pre> </div> </div> </div> <div dir="auto"> <p dir="auto">The injection will be performed for Git repository URLs which contain <code>foo</code>, but not the ones containing <code>foobar</code>.</p> </div> <div dir="auto"> <p dir="auto">The exclusion patterns take precedence over the inclusion patterns.</p> </div> <div dir="auto"> <blockquote> <div dir="auto"> <p dir="auto"><strong>Note</strong> - This feature is currently in Beta and requires Git Plugin to be installed. If Git Plugin is not installed, the following warning message will be show instead. The feature supports both Gradle and Maven builds (FreeStyle and Pipeline job configurations)</p> </div> </blockquote> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/general-git-plugin-not-installed.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/general-git-plugin-not-installed.png" alt="Git Plugin is not installed" width="80%" style="max-width: 100%;"></a> </div> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-gradle" class="heading-element" dir="auto" style="position: relative">Gradle<a href="#plugin-content-gradle" aria-label="gradle permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto">To enable the auto-injection for Gradle builds, set the desired <a href="https://docs.gradle.com/enterprise/gradle-plugin/" rel="nofollow">Develocity Gradle plugin</a> version in the <code>Develocity Gradle plugin version</code> field in the <code>Gradle settings</code> section of the configuration form.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/gradle-settings.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/gradle-settings.png" alt="Gradle settings" width="80%" style="max-width: 100%;"></a> </div> </div> <div dir="auto"> <p dir="auto">Optionally set the desired version of the <a href="https://github.com/gradle/common-custom-user-data-gradle-plugin">Common Custom User Data Gradle plugin</a> to be used.</p> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-maven" class="heading-element" dir="auto" style="position: relative">Maven<a href="#plugin-content-maven" aria-label="maven permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto">To enable the auto-injection for Maven builds, set the desired <a href="https://docs.gradle.com/enterprise/maven-extension/" rel="nofollow">Develocity Maven extension</a> version in the <code>Develocity Maven extension version</code> field in the <code>Maven settings</code> section of the configuration form.</p> </div> <div dir="auto"> <div dir="auto"> <a target="_blank" rel="noopener noreferrer" href="https://github.com/jenkinsci/gradle-plugin/blob/master/images/maven-settings.png"><img src="https://cdn.jsdelivr.net/gh/jenkinsci/gradle-plugin@master/images/maven-settings.png" alt="Maven settings" width="80%" style="max-width: 100%;"></a> </div> </div> <div dir="auto"> <p dir="auto">Optionally set the desired version of the <a href="https://github.com/gradle/common-custom-user-data-maven-extension">Common Custom User Data Maven Extension</a> to be used.</p> </div> <div dir="auto"> <p dir="auto">To see which versions are injected, refer to <a href="#plugin-content-auto-injection-compatibility">Auto-injection compatibility</a>.</p> </div> <div dir="auto"> <blockquote> <div dir="auto"> <p dir="auto"><strong>Warning</strong> - Maven injection only works if <code>MAVEN_OPTS</code> is not configured as a global environment variable.</p> </div> </blockquote> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-disable-auto-injection" class="heading-element" dir="auto" style="position: relative">Disable auto-injection<a href="#plugin-content-disable-auto-injection" aria-label="disable auto injection permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <p dir="auto">Disabling the auto-injection requires that all Develocity resources are cleaned up from the agents. To achieve this, the Gradle or Maven injections must be disabled individually (see the following sections). This triggers a cleanup of the resources. If the auto-injection should be disabled globally, then uncheck the <code>Enable auto-injection</code> checkbox as well.</p> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-gradle-1" class="heading-element" dir="auto" style="position: relative">Gradle<a href="#plugin-content-gradle-1" aria-label="gradle 1 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto">To disable the auto-injection for Gradle builds, remove the <code>Develocity Gradle plugin version</code> in the <code>Gradle settings</code> section of the configuration form.</p> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-maven-1" class="heading-element" dir="auto" style="position: relative">Maven<a href="#plugin-content-maven-1" aria-label="maven 1 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto">To disable the auto-injection for Maven builds, remove the <code>Develocity Maven extension version</code> in the <code>Maven settings</code> section of the configuration form.</p> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-control-auto-injection-based-on-node-labels" class="heading-element" dir="auto" style="position: relative">Control auto-injection based on node labels<a href="#plugin-content-control-auto-injection-based-on-node-labels" aria-label="control auto injection based on node labels permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <p dir="auto">Auto-injection can be enabled or disabled based on specific node labels. To enable auto-injection only on specific nodes, add the desired labels to the <code>Gradle auto-injection enabled nodes</code> list for Gradle or <code>Maven auto-injection enabled nodes</code> for Maven. To disable auto-injection on specific nodes, add the desired labels to the <code>Gradle auto-injection disabled nodes</code> list for Gradle or <code>Maven auto-injection disabled nodes</code> for Maven.</p> </div> <div dir="auto"> <p dir="auto">The disabled labels list will take precedence over the enabled labels list.</p> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-configuration-options" class="heading-element" dir="auto" style="position: relative">Configuration options<a href="#plugin-content-configuration-options" aria-label="configuration options permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <p dir="auto">The following sections list all available configuration options which can be set via the configuration form.</p> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-common-configuration-options" class="heading-element" dir="auto" style="position: relative">Common configuration options<a href="#plugin-content-common-configuration-options" aria-label="common configuration options permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto"><code>Enable auto-injection</code><br> Globally enable auto-injection.</p> </div> <div dir="auto"> <p dir="auto"><code>Develocity server url</code><br> The URL of the Develocity instance.</p> </div> <div dir="auto"> <p dir="auto"><code>Allow untrusted server</code><br> Whether to allow publishing to a server with a self-signed certificate.</p> </div> <div dir="auto"> <p dir="auto"><code>Develocity Access Key credential ID</code><br> The credential ID of the access key for authenticating with the Develocity server. During the job execution, the access key is used to get a short-lived token from the Develocity server.</p> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-short-lived-access-tokens" class="heading-element" dir="auto" style="position: relative">Short-lived access tokens<a href="#plugin-content-short-lived-access-tokens" aria-label="short lived access tokens permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto">Develocity access keys are long-lived, creating risks if they are leaked. To avoid this, users can use short-lived access tokens to authenticate with Develocity. Access tokens can be used wherever an access key would be used. Access tokens are only valid for the Develocity instance that created them. If a short-lived token fails to be retrieved (for example, if the Develocity server version is lower than <code>2024.1</code>), no access key will be set. In that case, Develocity authenticated operations like build cache read/write and build scan publication will fail without failing the build. For more information on short-lived tokens, see <a href="https://docs.gradle.com/develocity/api-manual/#short_lived_access_tokens" rel="nofollow">Develocity API documentation</a>.</p> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-gradle-specific-configuration-options" class="heading-element" dir="auto" style="position: relative">Gradle specific configuration options<a href="#plugin-content-gradle-specific-configuration-options" aria-label="gradle specific configuration options permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto"><code>Develocity Gradle plugin version</code><br> Enables auto-injection for Gradle builds and defines which version of the <a href="https://docs.gradle.com/enterprise/gradle-plugin/" rel="nofollow">Develocity Gradle plugin</a> to use.</p> </div> <div dir="auto"> <p dir="auto"><code>Common Custom User Data Gradle plugin version</code><br> Defines which version of the <a href="https://github.com/gradle/common-custom-user-data-gradle-plugin">Common Custom User Data Gradle plugin</a> to use.</p> </div> <div dir="auto"> <p dir="auto"><code>Gradle plugin repository url</code><br> The URL of the repository to use to resolve the Develocity Gradle plugin and the Common Custom User Data Gradle plugin. This is required if the Jenkins agents are not able to access the <a href="https://plugins.gradle.org" rel="nofollow">Gradle Plugin Portal</a>.</p> </div> <div dir="auto"> <p dir="auto"><code>Gradle plugin repository credential ID</code><br> The credentials containing username and password for a custom Gradle Plugin repository.</p> </div> <div dir="auto"> <p dir="auto"><code>Gradle auto-injection enabled nodes</code><br> A list of node labels on which the Develocity Gradle plugin or Common Custom User Data Gradle plugin injection should be enabled. By default, all nodes are enabled.</p> </div> <div dir="auto"> <p dir="auto"><code>Gradle auto-injection disabled nodes</code><br> A list of node labels on which the Develocity Gradle plugin or Common Custom User Data Gradle plugin injection should be disabled. By default, all nodes are enabled.</p> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-maven-specific-configuration-options" class="heading-element" dir="auto" style="position: relative">Maven specific configuration options<a href="#plugin-content-maven-specific-configuration-options" aria-label="maven specific configuration options permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto"><code>Develocity Maven extension version</code><br> Enables auto-injection for Maven builds and defines which version of the <a href="https://docs.gradle.com/enterprise/maven-extension/" rel="nofollow">Develocity Maven extension</a> to use.</p> </div> <div dir="auto"> <p dir="auto"><code>Common Custom User Data Maven extension version</code><br> Defines which version of the <a href="https://github.com/gradle/common-custom-user-data-data-maven-extension">Common Custom User Data Maven extension</a>.</p> </div> <div dir="auto"> <p dir="auto"><code>Maven extension repository url</code><br> The URL of the repository to use to resolve the Develocity Maven Extension and the Common Custom User Data Maven extension. This is required if the Jenkins agents are not able to access the <a href="https://repo1.maven.org/maven2" rel="nofollow">Maven Central</a>.</p> </div> <div dir="auto"> <p dir="auto"><code>Maven extension repository credential ID</code><br> The credentials containing username and password for a custom Maven repository.</p> </div> <div dir="auto"> <p dir="auto"><code>Maven auto-injection enabled nodes</code><br> A list of node labels where the Develocity Maven extension or Common Custom User Data Maven extension injection should be enabled. By default, all nodes are enabled.</p> </div> <div dir="auto"> <p dir="auto"><code>Maven auto-injection disabled nodes</code><br> A list of node labels where the Develocity Maven extension or Common Custom User Data Maven extension injection should be disabled. By default, all nodes are enabled.</p> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-auto-injection-compatibility" class="heading-element" dir="auto" style="position: relative">Auto-injection compatibility<a href="#plugin-content-auto-injection-compatibility" aria-label="auto injection compatibility permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <p dir="auto">The following sections list the compatibility of the plugin with the Develocity version based on the given build tool in use.</p> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-for-gradle-builds" class="heading-element" dir="auto" style="position: relative">For Gradle builds<a href="#plugin-content-for-gradle-builds" aria-label="for gradle builds permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto">For Gradle builds the version used for the Develocity Gradle plugin is defined in the <code>Develocity Gradle plugin version</code> field in the <code>Gradle settings</code> section of the configuration form. See <a href="#plugin-content-enable-auto-injection">Enable auto-injection</a> for details. The compatibility of the specified version with Develocity can be found <a href="https://docs.gradle.com/enterprise/compatibility/#gradle_enterprise_gradle_plugin" rel="nofollow">here</a>.</p> </div> <div dir="auto"> <p dir="auto">For the optional Common Custom User Data Gradle plugin which is defined the same form, you can see the compatibility of the specified version with the Develocity Gradle plugin <a href="https://github.com/gradle/common-custom-user-data-gradle-plugin#version-compatibility">here</a>.</p> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h4 id="plugin-content-for-maven-builds" class="heading-element" dir="auto" style="position: relative">For Maven builds<a href="#plugin-content-for-maven-builds" aria-label="for maven builds permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h4> </div> <div dir="auto"> <p dir="auto">For Maven builds the version used for the Develocity Maven extension is defined in the <code>Develocity Maven extension version</code> field in the <code>Maven settings</code> section of the configuration form. See <a href="#plugin-content-enable-auto-injection">Enable auto-injection</a> for details. The compatibility of the specified version with Develocity can be found <a href="https://docs.gradle.com/enterprise/compatibility/#maven_extension" rel="nofollow">here</a>.</p> </div> <div dir="auto"> <p dir="auto">For the optional Common Custom User Data Maven extension which is defined the same form, you can see the compatibility of the specified version with the Develocity Maven extension <a href="https://github.com/gradle/common-custom-user-data-maven-extension#version-compatibility">here</a>.</p> </div> <div dir="auto"> <p dir="auto">For plugin version older that <code>2.13</code>, the Maven extension is bundled with the plugin and does not require a version configuration. Please refer to <a href="https://github.com/jenkinsci/gradle-plugin/tree/gradle-2.12.1?tab=readme-ov-file#for-maven-builds">this</a> README version for a compatibility matrix.</p> </div> </div> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h2 id="plugin-content-disablinguninstalling-gradle-jenkins-plugin" class="heading-element" dir="auto" style="position: relative">Disabling/uninstalling Gradle Jenkins plugin<a href="#plugin-content-disablinguninstalling-gradle-jenkins-plugin" aria-label="disablinguninstalling gradle jenkins plugin permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h2> </div> <div dir="auto"> <div dir="auto"> <p dir="auto">To ensure that all Develocity resources are cleaned up from the agents, before disabling/uninstalling the plugin the auto-injection has to be manually disabled. Please, refer to the <a href="#plugin-content-disable-auto-injection">Disable auto-injection</a> section for details.</p> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h2 id="plugin-content-upgrade-notes" class="heading-element" dir="auto" style="position: relative">Upgrade notes<a href="#plugin-content-upgrade-notes" aria-label="upgrade notes permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h2> </div> <div dir="auto"> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-20" class="heading-element" dir="auto" style="position: relative">2.0<a href="#plugin-content-20" aria-label="20 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <blockquote> <div dir="auto"> <p dir="auto"><strong>Note</strong> - These upgrade notes only apply if you configured the Develocity auto-injection feature.</p> </div> </blockquote> </div> <div dir="auto"> <p dir="auto">A new form based configuration was introduced in this version, which replaces the configuration via environment variables. There is no automatic migration, therefore you need to manually migrate the already configured auto-injection via environment variables you’d need to follow these steps:</p> </div> <div dir="auto"> <ol dir="auto"> <li> <p dir="auto">Copy the values of the following environment variables and then remove them in the global configuration following environment variables from the global configuration:</p> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_GRADLE_ENTERPRISE_INJECTION</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_GRADLE_ENTERPRISE_URL</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_GRADLE_ENTERPRISE_ALLOW_UNTRUSTED_SERVER</code></p> </li> <li> <p dir="auto"><code>GRADLE_ENTERPRISE_ACCESS_KEY</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_GRADLE_ENTERPRISE_PLUGIN_VERSION</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_CCUD_PLUGIN_VERSION</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_GRADLE_PLUGIN_REPOSITORY_URL</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_GRADLE_INJECTION_ENABLED_NODES</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_GRADLE_INJECTION_DISABLED_NODES</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_GRADLE_ENTERPRISE_EXTENSION_VERSION</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_CCUD_EXTENSION_VERSION</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_MAVEN_INJECTION_ENABLED_NODES</code></p> </li> <li> <p dir="auto"><code>JENKINSGRADLEPLUGIN_MAVEN_INJECTION_DISABLED_NODES</code></p> </li> </ul> </div> </li> <li> <p dir="auto">Copy the previously saved values and enter them in the new form based configuration to have the same configuration as before.</p> </li> </ol> </div> </div> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h2 id="plugin-content-release-notes" class="heading-element" dir="auto" style="position: relative">Release Notes<a href="#plugin-content-release-notes" aria-label="release notes permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h2> </div> <div dir="auto"> <div dir="auto"> <p dir="auto">For the current release notes (<code>v1.34+</code>), please check the <a href="https://github.com/jenkinsci/gradle-plugin/releases">GitHub releases page</a>.</p> </div> <div dir="auto"> <p dir="auto">For the older releases <code>< v1.34</code> see this list:</p> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-133-july-5th-2019" class="heading-element" dir="auto" style="position: relative">1.33 (July 5th 2019)<a href="#plugin-content-133-july-5th-2019" aria-label="133 july 5th 2019 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Remove support for dry-run plugin <a href="https://github.com/jenkinsci/gradle-plugin/pull/72" data-hovercard-type="pull_request" data-hovercard-url="/jenkinsci/gradle-plugin/pull/72/hovercard">#72</a></p> </li> <li> <p dir="auto">Support detecting build scans in pipeline jobs (<a href="https://github.com/jenkinsci/gradle-plugin/pull/71" data-hovercard-type="pull_request" data-hovercard-url="/jenkinsci/gradle-plugin/pull/71/hovercard">#71</a>)</p> </li> <li> <p dir="auto">Increase required core version to 2.60.3 <a href="https://github.com/jenkinsci/gradle-plugin/pull/73" data-hovercard-type="pull_request" data-hovercard-url="/jenkinsci/gradle-plugin/pull/73/hovercard">#73</a></p> </li> <li> <p dir="auto">Use consistent file formatting for sources <a href="https://github.com/jenkinsci/gradle-plugin/pull/74" data-hovercard-type="pull_request" data-hovercard-url="/jenkinsci/gradle-plugin/pull/74/hovercard">#74</a>. Thanks @darxriggs.</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-132-may-24th-2019" class="heading-element" dir="auto" style="position: relative">1.32 (May 24th 2019)<a href="#plugin-content-132-may-24th-2019" aria-label="132 may 24th 2019 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Expose build scan action via Jenkins API (<a href="https://github.com/jenkinsci/gradle-plugin/pull/70" data-hovercard-type="pull_request" data-hovercard-url="/jenkinsci/gradle-plugin/pull/70/hovercard">#70</a>)</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-131-mar-16th-2019" class="heading-element" dir="auto" style="position: relative">1.31 (Mar 16th 2019)<a href="#plugin-content-131-mar-16th-2019" aria-label="131 mar 16th 2019 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Support detecting build scans for non-Gradle build steps #66</p> </li> <li> <p dir="auto">Support for detecting Maven build scans #68</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-130-jan-11th-2019" class="heading-element" dir="auto" style="position: relative">1.30 (Jan 11th 2019)<a href="#plugin-content-130-jan-11th-2019" aria-label="130 jan 11th 2019 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix configuration as code compatibility (<a href="https://issues.jenkins-ci.org/browse/JENKINS-53575" rel="nofollow">JENKINS-53575</a>)</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-129-jul-3rd-2018" class="heading-element" dir="auto" style="position: relative">1.29 (Jul 3rd 2018)<a href="#plugin-content-129-jul-3rd-2018" aria-label="129 jul 3rd 2018 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Update licensing information in pom.xml.</p> </li> <li> <p dir="auto">Support console annotations for Gradle 4.7 and later.</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-128-oct-2-2017" class="heading-element" dir="auto" style="position: relative">1.28 (Oct 2 2017)<a href="#plugin-content-128-oct-2-2017" aria-label="128 oct 2 2017 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Empty job parameters are passed as empty (<a href="https://issues.jenkins-ci.org/browse/JENKINS-45300" rel="nofollow">JENKINS-45300</a>)</p> </li> <li> <p dir="auto">Console annotator endless loop in combination with using the Ant plugin fixed (<a href="https://issues.jenkins-ci.org/browse/JENKINS-46051" rel="nofollow">JENKINS-46051</a>)</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-1271-jul-1-2017" class="heading-element" dir="auto" style="position: relative">1.27.1 (Jul 1 2017)<a href="#plugin-content-1271-jul-1-2017" aria-label="1271 jul 1 2017 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Increase required core version to 1.642.1</p> </li> <li> <p dir="auto">Make finding wrapper location more robust on Windows</p> </li> <li> <p dir="auto">Job parameters are now correctly quoted when passed as system properties (<a href="https://issues.jenkins-ci.org/browse/JENKINS-42573" rel="nofollow">JENKINS-42573</a> and <a href="https://issues.jenkins-ci.org/browse/JENKINS-20505" rel="nofollow">JENKINS-20505</a>)</p> </li> <li> <p dir="auto">Do not pass all job parameters as (system) properties to Gradle by default</p> </li> <li> <p dir="auto">Include automated test for CLI command <a href="https://issues.jenkins-ci.org/browse/JENKINS-42847" rel="nofollow">JENKINS-42847</a></p> </li> <li> <p dir="auto">Ensure that Gradle’s bin directory is on the path for Pipeline tool steps <a href="https://issues.jenkins-ci.org/browse/JENKINS-42381" rel="nofollow">JENKINS-42381</a></p> </li> <li> <p dir="auto">Add option to pass only selected system properties to Gradle</p> </li> <li> <p dir="auto">Add option to pass only selected project properties to Gradle</p> </li> <li> <p dir="auto">Progress status <code>FROM-CACHE</code> and <code>NO-SOURCE</code> are highlighted in the console, too.</p> </li> <li> <p dir="auto">Support build scan plugin 1.8</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-127-jun-23-2017" class="heading-element" dir="auto" style="position: relative">1.27 (Jun 23 2017)<a href="#plugin-content-127-jun-23-2017" aria-label="127 jun 23 2017 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">DO NOT USE - PROBLEMS WITH RELEASING <a href="https://issues.jenkins-ci.org/browse/JENKINS-45126" rel="nofollow">JENKINS-45126</a></p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-126-feb-13-2016" class="heading-element" dir="auto" style="position: relative">1.26 (Feb 13 2016)<a href="#plugin-content-126-feb-13-2016" aria-label="126 feb 13 2016 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Use <code>@DataBoundSetter</code> instead of a (too) large <code>@DataBoundConstructor</code></p> </li> <li> <p dir="auto">Add @Symbol annotations for step and tool <a href="https://issues.jenkins-ci.org/browse/JENKINS-37394" rel="nofollow">JENKINS-37394</a></p> </li> <li> <p dir="auto">Make it possible to configure the wrapper location <a href="https://issues.jenkins-ci.org/browse/JENKINS-35029" rel="nofollow">JENKINS-35029</a></p> </li> <li> <p dir="auto">Update icon for build scan integration</p> </li> <li> <p dir="auto">Remove description from build step</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-125" class="heading-element" dir="auto" style="position: relative">Release 1.25<a href="#plugin-content-release-125" aria-label="release 125 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Update core dependency to 1.580.1 JENKINS-34790</p> </li> <li> <p dir="auto">Fix for Gradle wrapper not working when Gradle version was previously selected (JENKINS-24682)</p> </li> <li> <p dir="auto">Long task names in console outline should not overlap console output (JENKINS-26287)</p> </li> <li> <p dir="auto">It is now possible to pass Gradle build parameters as project properties (JENKINS-17523)</p> </li> <li> <p dir="auto">If a <a href="https://scans.gradle.com" rel="nofollow">Gradle Build Scan</a> is produced during the build then a link is added to the build page.</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-124" class="heading-element" dir="auto" style="position: relative">Release 1.24<a href="#plugin-content-release-124" aria-label="release 124 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix JENKINS-18629 - Jenkins fails to save configuration when using Invoke Gradle script in Conditional Step (single).</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-123" class="heading-element" dir="auto" style="position: relative">Release 1.23<a href="#plugin-content-release-123" aria-label="release 123 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix <a href="https://issues.jenkins-ci.org/browse/JENKINS-17386" rel="nofollow">issue #17386</a> - Gradle.properties ignored after 1.22 upgrade. GRADLE_USER_HOME is now no longer set to the workspace of the job by default. If you wish to have the workspace job as the GRADLE_USER_HOME, you will need to change the config to reflect this.</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-122" class="heading-element" dir="auto" style="position: relative">Release 1.22<a href="#plugin-content-release-122" aria-label="release 122 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix JENKINS-17294 - mask sensitive variables (Password parameters)</p> </li> <li> <p dir="auto">Fix JENKINS-13412 - use hudson.util.ArgumentListBuilder#toWindowsCommand</p> </li> <li> <p dir="auto">Set GRADLE_USER_HOME all the time</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-121" class="heading-element" dir="auto" style="position: relative">Release 1.21<a href="#plugin-content-release-121" aria-label="release 121 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Add the ability to allow gradlew to still be run from workspace top, but to also configure it so that gradlew is found in the root build script directory.</p> </li> <li> <p dir="auto">Fix JENKINS-12769 - Cannot specify location of gradle wrapper</p> </li> <li> <p dir="auto">Fix JENKINS-15406 - When using gradlew, root build script field is not used to locate gradlew</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-120" class="heading-element" dir="auto" style="position: relative">Release 1.20<a href="#plugin-content-release-120" aria-label="release 120 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix JENKINS-15166 - Gradle plugin fails to save selected Gradle Version in Project configuration</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-119" class="heading-element" dir="auto" style="position: relative">Release 1.19<a href="#plugin-content-release-119" aria-label="release 119 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix broken file permission introduced by JENKINS-14780</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-118" class="heading-element" dir="auto" style="position: relative">Release 1.18<a href="#plugin-content-release-118" aria-label="release 118 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix JENKINS-14780 - make gradlew script executable</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-117" class="heading-element" dir="auto" style="position: relative">Release 1.17<a href="#plugin-content-release-117" aria-label="release 117 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Merge pull request - Change Gradle Wrapper logic to use the launcher’s OS type rather than master’s OS type when determining Gradle Wrapper script name</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-116" class="heading-element" dir="auto" style="position: relative">Release 1.16<a href="#plugin-content-release-116" aria-label="release 116 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix reopened JENKINS-9538 - hudson.model.FreeStyleBuild & GradleInstallation not serializable ⇒ Gradle build not working anymore</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-115" class="heading-element" dir="auto" style="position: relative">Release 1.15<a href="#plugin-content-release-115" aria-label="release 115 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix reopened JENKINS-13412 - Gradle plugin fails to quote parameters without whitespace when containing input/output redirection symbols, e.g. in XML strings</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-114" class="heading-element" dir="auto" style="position: relative">Release 1.14<a href="#plugin-content-release-114" aria-label="release 114 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix JENKINS-13412 - Gradle plugin fails to quote parameters without whitespace when containing input/output redirection symbols, e.g. in XML strings</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-113" class="heading-element" dir="auto" style="position: relative">Release 1.13<a href="#plugin-content-release-113" aria-label="release 113 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix JENKINS-9538 - hudson.model.FreeStyleBuild & GradleInstallation not serializable ⇒ Gradle build not working anymore</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-112-october-30-2011" class="heading-element" dir="auto" style="position: relative">Release 1.12 (October 30, 2011)<a href="#plugin-content-release-112-october-30-2011" aria-label="release 112 october 30 2011 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix JENKINS-9553 - Gradle wrapper command fails on Windows</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-111-october-02-2011" class="heading-element" dir="auto" style="position: relative">Release 1.11 (October 02, 2011)<a href="#plugin-content-release-111-october-02-2011" aria-label="release 111 october 02 2011 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Coloring output log and Navigation executed tasks (from pull request of ikikko)</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-110-september-07-2011" class="heading-element" dir="auto" style="position: relative">Release 1.10 (September 07, 2011)<a href="#plugin-content-release-110-september-07-2011" aria-label="release 110 september 07 2011 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Provide dry-run option for the</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-19-june-24-2011" class="heading-element" dir="auto" style="position: relative">Release 1.9 (June 24, 2011)<a href="#plugin-content-release-19-june-24-2011" aria-label="release 19 june 24 2011 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Integrate pull request - Enable JAVA_OPTS</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-18-april-01-2011" class="heading-element" dir="auto" style="position: relative">Release 1.8 (April 01, 2011)<a href="#plugin-content-release-18-april-01-2011" aria-label="release 18 april 01 2011 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Add pull request 'Let users use the Gradle wrapper'</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-171-march-24-2011" class="heading-element" dir="auto" style="position: relative">Release 1.7.1 (March 24, 2011)<a href="#plugin-content-release-171-march-24-2011" aria-label="release 171 march 24 2011 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix 1.7 to properly set required Jenkins version.</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-17-march-23-2011" class="heading-element" dir="auto" style="position: relative">Release 1.7 (March 23, 2011)<a href="#plugin-content-release-17-march-23-2011" aria-label="release 17 march 23 2011 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Add automatic tool installer</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-16-february-27-2011" class="heading-element" dir="auto" style="position: relative">Release 1.6 (February 27, 2011)<a href="#plugin-content-release-16-february-27-2011" aria-label="release 16 february 27 2011 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix 1.5 to properly set required Jenkins version.</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-15-february-19-2011" class="heading-element" dir="auto" style="position: relative">Release 1.5 (February 19, 2011)<a href="#plugin-content-release-15-february-19-2011" aria-label="release 15 february 19 2011 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Update to Jenkins 1.397 API and metadata</p> </li> <li> <p dir="auto">Change UI labels from Hudson to Jenkins</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-14-june-09-2010" class="heading-element" dir="auto" style="position: relative">Release 1.4 (June, 09, 2010)<a href="#plugin-content-release-14-june-09-2010" aria-label="release 14 june 09 2010 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Fix help messages</p> </li> <li> <p dir="auto">Add technical internal behavior for a suitable Artifactory/Gradle integration (with the buildinfo)</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-13-february-23-2010" class="heading-element" dir="auto" style="position: relative">Release 1.3 (February 23, 2010)<a href="#plugin-content-release-13-february-23-2010" aria-label="release 13 february 23 2010 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Add a description message in the build step</p> </li> <li> <p dir="auto">The plugin makes it possible to extract a Gradle distribution from a shared location or from a command line, and uses this distribution for running the build.</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-12-february-07-2009" class="heading-element" dir="auto" style="position: relative">Release 1.2 (February 07, 2009)<a href="#plugin-content-release-12-february-07-2009" aria-label="release 12 february 07 2009 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Add a distinction between switches and tasks</p> </li> <li> <p dir="auto">The plugin makes its possible to specify the location of the build script if the workspace has a top-level build.gradle in somewhere other than the module root directory</p> </li> <li> <p dir="auto">Improve user help messages</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-11-november-07-2008" class="heading-element" dir="auto" style="position: relative">Release 1.1 (November 07, 2008)<a href="#plugin-content-release-11-november-07-2008" aria-label="release 11 november 07 2008 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Add the support of Gradle 0.5. Before the version 0.5, the gradle windows executable file was "gradle.exe", and you lost the ERRORLEVEL value. From Gradle 0.5, the window launcher is a .bat file that conserves the correct ERRORLEVEL value.</p> </li> </ul> </div> </div> <div dir="auto"> <div class="markdown-heading" dir="auto"> <h3 id="plugin-content-release-10-october-04-2008" class="heading-element" dir="auto" style="position: relative">Release 1.0 (October 04, 2008)<a href="#plugin-content-release-10-october-04-2008" aria-label="release 10 october 04 2008 permalink" class="anchor after"><ion-icon name="link-outline"></ion-icon></a></h3> </div> <div dir="auto"> <ul dir="auto"> <li> <p dir="auto">Initial release</p> </li> </ul> </div> </div> </div> </div> </article> </div></div></div></div></div><div class="col-md-3 sidebar"><h5>Version: 2.13.1</h5><div>Released: <time dateTime="2024-10-08T09:07:04.000Z" title="2024-10-08 09:07">2 months ago</time></div><div>Requires Jenkins <!-- -->2.401.3</div><div>ID: <!-- -->gradle</div><div class="sidebarSection"><h5 title="Total: 214,556">Installed on 77.4% of controllers</h5><div class="chart"><div style="padding:0"><canvas role="img" height="90" width="300"></canvas></div></div><div class="label-link"><a href="https://old.stats.jenkins.io/pluginversions/gradle.html">View detailed version information</a></div></div><div class="sidebarSection"><h5>Links</h5><div class="label-link"><a href="https://github.com/jenkinsci/gradle-plugin">GitHub</a></div><div class="label-link"><a href="https://issues.jenkins.io/issues/?jql=resolution%20is%20EMPTY%20and%20component%3D15547">Open issues (Jira)</a></div><div class="label-link"><a href="https://www.jenkins.io/participate/report-issue/redirect/#15547">Report an issue (Jira)</a></div><div class="label-link"><a href="https://www.jenkins.io/doc/pipeline/steps/gradle">Pipeline Step Reference</a></div><div class="label-link"><a href="https://javadoc.jenkins.io/plugin/gradle">Javadoc</a></div></div><div class="sidebarSection"><h5>Labels</h5><div class="label-link"><a href="/ui/search/?labels=builder">Build Tools</a></div></div><div class="sidebarSection"><h5>Maintainers</h5><div class="maintainer"><a href="/ui/search/?query=gbois">Gregory Boissinot</a></div><div class="maintainer"><a href="/ui/search/?query=wolfs">Stefan Wolf</a></div><div class="maintainer"><a href="/ui/search/?query=avenderov">Alexey Venderov</a></div><div class="maintainer"><a href="/ui/search/?query=facewindu">François Guillot</a></div><div class="maintainer"><a href="/ui/search/?query=guylabs">Guy Brand</a></div><div class="maintainer"><a href="/ui/search/?query=sflorea">Sorin Florea</a></div><div class="maintainer"><a href="/ui/search/?query=welandaz">Iurii Ignatko</a></div><div class="maintainer"><a href="/ui/search/?query=atual">Alexis</a></div></div><div class="sidebarSection"><h5>Help us improve this page!</h5>To propose a change submit a pull request to <a href="https://github.com/jenkinsci/gradle-plugin" rel="noopener noreferrer" target="_blank">the plugin page</a> on GitHub.</div><div class="sidebarSection"><div><h5>Previous Security Warnings</h5><ul class="security-warning-list"><li><h6><a href="https://www.jenkins.io/security/advisory/2023-07-26/#SECURITY-3208">Incorrect control flow breaks credentials masking in the build log</a></h6><ul><li>Affects version 2.8 and earlier</li></ul></li></ul></div></div></div></div></div><jio-footer githubRepo="" property="https://plugins.jenkins.io/" githubBranch="main" reportAProblemTemplate="4-bug.yml"></jio-footer></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script> window.dev = undefined if (window.dev === true || true) { window._paq = window._paq || []; window._paq.push(['setTrackerUrl', 'https://jenkins-matomo.do.g4v.dev/matomo.php']); window._paq.push(['setSiteId', '1']); window._paq.push(['enableHeartBeatTimer']); window.start = new Date(); (function() { var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src='https://jenkins-matomo.do.g4v.dev/matomo.js'; s.parentNode.insertBefore(g,s); })(); if (window.dev === true) { console.debug('[Matomo] Tracking initialized') console.debug('[Matomo] matomoUrl: https://jenkins-matomo.do.g4v.dev, siteId: 1') } } </script><noscript><img src="https://jenkins-matomo.do.g4v.dev/piwik.php?idsite=1&rec=1&url=https://plugins.jenkins.io//gradle/" style="border:0" alt="tracker" /></noscript><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/gradle/";/*]]>*/</script><!-- slice-start id="_gatsby-scripts-1" --> <script id="gatsby-chunk-mapping" > window.___chunkMapping="{\"app\":[\"/app-245afccca0242903c038.js\"],\"component---src-pages-404-jsx\":[\"/component---src-pages-404-jsx-7e80fca415f6414faf44.js\"],\"component---src-templates-index-jsx\":[\"/component---src-templates-index-jsx-342f05f65f1c3e80f26e.js\"],\"component---src-templates-plugin-dependencies-jsx\":[\"/component---src-templates-plugin-dependencies-jsx-abac5dd31b94bc28ec58.js\"],\"component---src-templates-plugin-documentation-jsx\":[\"/component---src-templates-plugin-documentation-jsx-6781e0b1ce28c75ec828.js\"],\"component---src-templates-plugin-health-score-jsx\":[\"/component---src-templates-plugin-health-score-jsx-e305d9d25bab38ec80fd.js\"],\"component---src-templates-plugin-issues-jsx\":[\"/component---src-templates-plugin-issues-jsx-122938860f561ab2c9a9.js\"],\"component---src-templates-plugin-releases-jsx\":[\"/component---src-templates-plugin-releases-jsx-5fadd9f681f2670d8c08.js\"],\"component---src-templates-search-jsx\":[\"/component---src-templates-search-jsx-0ddc993f23a3b6c44520.js\"],\"component---src-templates-tombstone-jsx\":[\"/component---src-templates-tombstone-jsx-da05f23b6dacb1c3b636.js\"]}"; </script> <script>window.___webpackCompilationHash="5049eb47989a97725511";</script><script src="/webpack-runtime-4a2588574cc6df7e2d08.js" async></script><script src="/framework-e547aabdcd858de1462d.js" async></script><script src="/app-245afccca0242903c038.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html>