CINXE.COM

Gradle - Plugin: com.gradle.plugin-publish

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Gradle - Plugin: com.gradle.plugin-publish</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="//fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet" type="text/css"> <link rel="stylesheet" href="/shared-assets/shared/bootstrap/css/bootstrap.min.css"/> <link rel="stylesheet" type="text/css" href="/shared-assets/shared/styles/main.css"/> <link rel="shortcut icon" href="/shared-assets/shared/images/elephant.ico"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha384-vtXRMe3mGCbOeY7l30aIg8H9p3GdeSe4IFlP6G8JMa7o7lXvnz3GFKzPxzJdPfGK" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha256-qXBd/EfAdjOA2FGrGAG+b3YBn2tn5A6bhz+LSgYD96k=" crossorigin="anonymous"></script> <script integrity="sha256-cThjNwQ0AS+/Z2uD76101UnXGOH65pSGKTbFESeaGzE="> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-4207603-1', 'auto', 'default', {'allowLinker': true}); ga('default.send', 'pageview'); ga('default.require', 'linker'); ga('default.linker:autoLink', ['gradle.com'], false, true); ga('default.set', 'transport', 'beacon'); ga('create', 'UA-4207603-12', 'auto', 'plugins'); ga('plugins.send', 'pageview'); ga('plugins.set', 'transport', 'beacon'); </script> </head> <body> <div id="content-wrapper"> <header> <nav class="navbar navbar-default"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="https://gradle.org/"> <img src="/shared-assets/shared/images/elephant-corner.png" width="32px" height="32px" /> </a> </div> <div class="collapse navbar-collapse" id="navbar-collapse"> <ul class="nav navbar-nav"> <li> <a href="https://plugins.gradle.org/">Plugins</a> </li> <li class="dropdown" id="documentation-dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li id="submit-documentation-link"> <a href="https://plugins.gradle.org/docs/publish-plugin"> Publish a plugin </a> </li> <li id="reclaiming-documentation-link"> <a href="https://plugins.gradle.org/docs/reclaiming"> Link an existing plugin to your account </a> </li> <li id="deleting-documentation-link"> <a href="https://plugins.gradle.org/docs/deleting"> Delete a plugin </a> </li> <li id="mirroring-documentation-link"> <a href="https://plugins.gradle.org/docs/mirroring"> Mirror the plugin portal </a> </li> <li id="further-help-link"> <a href="https://plugins.gradle.org/docs/get-help"> Get further help </a> </li> </ul> </li> <li id="forums-link"> <a href="https://discuss.gradle.org" target="_blank">Forums</a> </li> </ul> <ul class="nav navbar-nav navbar-right"> <li> <a id="login-action" href="https://plugins.gradle.org/user/login" data-toggle="tooltip" data-placement="bottom" title="Log in"> &nbsp;&nbsp;&nbsp;&nbsp; <span class="glyphicon glyphicon-log-in" aria-hidden="true"> </span> </a> </li> </ul> </div> </div> </nav> </header> <div id="content"> <div id="alert-box" class="container alert alert-success" role="alert" style="display:none"> <button id="alert-close" type="button" class="close"> <span aria-hidden="true">&times;</span> <span class="sr-only">Close</span> </button> <strong id="flash-message-text"></strong> </div> <div class="container plugin-page"> <div class="clearfix"> <div class="row top-row"> <div class="col-md-3 logo-wrapper"> <div class="logo"> <a href="https://plugins.gradle.org/"> <img src="/shared-assets/shared/images/gradle-logo-horizontal.svg" height="55.890410958904106px" width="160.0px" alt="Gradle Logo"/> </a> </div> </div> <div class="col-md-4 col-md-offset-5"> <p>Search Gradle plugins</p> <form id="search" action="/search"> <div class="form-group"> <input class="form-control" type="text" name="term" id="term" placeholder="search by tag or keyword" /> </div> </form> </div> </div> </div> <div class="modal fade" id="confirmation-modal-update" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Approval confirmation</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> <span id="description-modal-update-body" style="white-space: pre-wrap"></span> </div> <div class="modal-footer"> <button id="description-update-cancellation" type="button" class="btn btn-secondary" data-dismiss="modal"> Cancel </button> <button id="description-update-confirmation" type="button" class="btn btn-primary" data-dismiss="modal"> Approve </button> </div> </div> </div> </div> <div class="modal fade" id="confirmation-version-modal-update" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Approval confirmation</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> <span id="description-version-modal-update-body" style="white-space: pre-wrap"></span> </div> <div class="modal-footer"> <button id="description-version-update-cancellation" type="button" class="btn btn-secondary" data-dismiss="modal"> Cancel </button> <button id="description-version-update-confirmation" type="button" class="btn btn-primary" data-dismiss="modal"> Approve </button> </div> </div> </div> </div> <div class="modal fade" id="confirmation-delete-plugin" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Delete plugin confirmation</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-header"> To confirm the plugin deletion insert pluginId and author name </div> <p id="pluginAuthorValue" style="display:none">Gradle</p> <p id="pluginIdValue" style="display:none">com.gradle.plugin-publish</p> <div class="modal-body"> PluginId <input id="delete-plugin-id-conf" style="white-space: pre-wrap"> </div> <div class="modal-body"> Author <input id="delete-plugin-author-conf" style="white-space: pre-wrap"> </div> <div id="delete-plugin-error" class="modal-body" style="display:none"> <span style="white-space: pre-wrap" id="confirm-error-message"></span> </div> <div class="modal-footer"> <button id="delete-plugin-dismiss" type="button" class="btn btn-secondary" data-dismiss="modal"> Dismiss </button> <button id="delete-plugin-confirmation" type="button" class="btn btn-primary"> Confirm </button> </div> </div> </div> </div> <div class="row plugin-detail box"> <div class="detail plugin-info"> <a href="/plugin/com.gradle.plugin-publish"> <h1 id="plugin-id">com.gradle.plugin-publish</h1> </a> <div class="plugin-owner"> <p> <strong>Owner:</strong> <a id="plugin-owner-link" href="https://plugins.gradle.org/u/prod-plugin-portal-publishing"> <img src="https://avatars3.githubusercontent.com/u/124156?s=200&amp;v=4" class="owner-avatar img-rounded"/> Gradle </a> </p> </div> <div class="plugin-info"> <p id="plugin-description" class="description-text" style="white-space: pre-wrap">Publish plugins to the Gradle Plugin Portal</p> <textarea id="edit-plugin-description" value="Publish plugins to the Gradle Plugin Portal" style="display:none;width:100%;margin-bottom:10px;"></textarea> </div> <p class="website"><a id="website" href="https://plugins.gradle.org/docs/publish-plugin">https://plugins.gradle.org/docs/publish-plugin</a></p> <textarea id="edit-website" value="https://plugins.gradle.org/docs/publish-plugin" style="display:none;width:100%;margin-bottom:10px;"></textarea> <p class="vcs">Sources: <a id="vcsUrl" href="http://www.gradleware.com">http://www.gradleware.com</a> <textarea id="edit-vcsUrl" value="http://www.gradleware.com" style="display:none;width:100%;margin-bottom:10px;"></textarea> </p> <div class="plugin-about"> <ul class="list-inline plugin-tags"> <li> <a class="plugin-tag" href="/search?term=publishing">#publishing</a> <span class="glyphicon glyphicon-remove remove-tag" style="display: none;"></span> </li> <li> <a class="plugin-tag" href="/search?term=plugins">#plugins</a> <span class="glyphicon glyphicon-remove remove-tag" style="display: none;"></span> </li> </ul> <ul class="list-inline"> <li id="edit-tags" style="display: none;"> <input id="tag-input"> <button id="add-tag" class="btn btn-success" > <span class="glyphicon glyphicon-ok"></span> Add tag </button> </li> </ul> </div> </div> <div class="version-info well well-sm"> <h3>Version 1.3.0 (latest) </h3> <p id="plugin-id-version" display="none">1.3.0</p> <p class="version-created-date"> Created 11 September 2024. </p> <div class="version-description"> <span id="plugin-version-description" class="description-text" style="white-space: pre-wrap">- Enhance shadow integration to account for the move to com.gradleup.shadow plugin id - Update sigstore support to the 1.0.0 extension of `.sigstore.json`</span> <textarea id="edit-plugin-version-description" style="display:none;width:100%;margin-bottom:10px;"></textarea> </div> <div class="other-versions dropdown"> <a class="dropdown-toggle" type="button" data-toggle="dropdown">Other versions&nbsp;<span class="caret"></span></a> <ul class="dropdown-menu"> <li> <a href="/plugin/com.gradle.plugin-publish/1.2.2">1.2.2</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/1.2.1">1.2.1</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/1.2.0">1.2.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/1.1.0">1.1.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/1.0.0">1.0.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/1.0.0-rc-3">1.0.0-rc-3</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/1.0.0-rc-2">1.0.0-rc-2</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/1.0.0-rc-1">1.0.0-rc-1</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.21.0">0.21.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.20.0">0.20.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.19.0">0.19.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.18.0">0.18.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.17.0">0.17.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.16.0">0.16.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.15.0">0.15.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.14.0">0.14.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.13.0">0.13.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.12.0">0.12.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.11.0">0.11.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.10.1">0.10.1</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.10.0">0.10.0</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.10">0.9.10</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.9">0.9.9</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.8">0.9.8</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.7">0.9.7</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.6">0.9.6</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.5">0.9.5</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.4">0.9.4</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.3">0.9.3</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.2">0.9.2</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.1">0.9.1</a> </li> <li> <a href="/plugin/com.gradle.plugin-publish/0.9.0">0.9.0</a> </li> </ul> </div> </div> <div> <p>Add this plugin to your build using the <a href="https://docs.gradle.org/current/userguide/plugins.html#sec:plugins_block">plugins DSL</a>:</p> <pre><code class="language-groovy">plugins { id("com.gradle.plugin-publish") version "1.3.0" }</code></pre> <p>See also:</p> <ul> <li> <details> <summary>The <a href="https://docs.gradle.org/current/userguide/plugins.html#sec:applying_plugins_buildscript">legacy</a> method of plugin application.</summary> <pre><code class="language-gradle">buildscript { repositories { gradlePluginPortal() } dependencies { classpath("com.gradle.publish:plugin-publish-plugin:1.3.0") } } apply(plugin = "com.gradle.plugin-publish")</code></pre> </details> </li> <li> <a href="https://docs.gradle.org/current/userguide/plugins.html#sec:subprojects_plugins_dsl"> Applying plugins to all subprojects </a>. </li> </ul> </div> </div> </div> </div> <script type="text/javascript" integrity="sha256-ybP8QXo8gHYaSu/82pgmntjcrB8DFtWZ0jFVx+eR0bk="> $(document).ready(function() { $('#edit-plugin').click(function (event) { $('#edit-plugin-description').val($('#plugin-description').text()); $('#edit-website').val($('#website').text()); $('#edit-vcsUrl').val($('#vcsUrl').text()); $('#edit-plugin').hide() $('#plugin-description').hide() $('#website').hide() $('#vcsUrl').hide() $('#update-plugin').show() $('#cancel-editing').show() $('#edit-plugin-description').show() $('#edit-website').show() $('#edit-vcsUrl').show() $('.remove-tag').show() $('#edit-tags').show() }); $('#update-plugin').click(function (event) { var description = $('#edit-plugin-description').val(); var oldDescription = $('#plugin-description').text(); var website = $('#edit-website').val(); var vcsUrl = $('#edit-vcsUrl').val(); var tags = getTags(); var confirmMessage = "Are you sure you want to update plugin details to\ndescription : " + description + "\nwebsite : " + website + "\nvcsUrl : " + vcsUrl + "\ntags : " + tags + "\n?"; $('#description-modal-update-body').text(confirmMessage); }); function getTags() { var tagElems = $('.plugin-tags li').not(".soft-deleted").find("a"); var tags = []; tagElems.each(function () { var tag = $(this).text().substring(1); tags.push(tag); }); return tags; } function disableEditPluginMode() { $('#edit-plugin').show() $('#plugin-description').show() $('#website').show() $('#vcsUrl').show() $('#update-plugin').hide() $('#cancel-editing').hide() $('#edit-plugin-description').hide() $('#edit-website').hide() $('#edit-vcsUrl').hide() $('.remove-tag').hide() $('#edit-tags').hide() } function sanitizeUrl(url) { try { let sanitizedUrl = new URL(url); return sanitizedUrl.href; } catch (e) { console.error("Invalid URL:", url); return "about:blank"; } } $('#description-update-confirmation').click(function (event) { var description = $('#edit-plugin-description').val(); var website = $('#edit-website').val(); var vcsUrl = $('#edit-vcsUrl').val(); var tags = getTags(); var payload = { pluginId: $('#plugin-id').text(), description: description, website: website, vcsUrl: vcsUrl, tags: tags } var updateFrontendOnSuccess = function() { $('#plugin-description').text(description); $('#website').text(website); document.getElementById('website').href = sanitizeUrl(website); $('#vcsUrl').text(vcsUrl); document.getElementById('vcsUrl').href = sanitizeUrl(vcsUrl); $(".soft-deleted").remove(); } var updateFrontendOnFailed = function() { $(".soft-deleted").removeClass("soft-deleted"); } submitDescription("update-plugin-details", payload, updateFrontendOnSuccess, updateFrontendOnFailed); disableEditPluginMode(); }); $('#cancel-editing').click(function (event) { disableEditPluginMode() $(".soft-deleted").removeClass("soft-deleted"); }); $('.remove-tag').click(function (event) { $(this).parent().addClass("soft-deleted"); }); $('#add-tag').click(function (event) { var tagInputValue = $("#tag-input").val(); if(tagInputValue === "") { return; } var tagLi = $("<li></li>"); var tag = $('<a></a>').text("#"+tagInputValue); var x = $('<span></span>') tag.addClass("plugin-tag"); x.addClass("glyphicon glyphicon-remove remove-tag"); tagLi.append(tag, x) $(".plugin-tags").append(tagLi) x.click(function (event) { $(this).parent().addClass("soft-deleted"); }); $("#tag-input").val(""); }); $('#edit-plugin-version').click(function (event) { $('#edit-plugin-version-description').val($('#plugin-version-description').text()); $('#edit-plugin-version').hide() $('#plugin-version-description').hide() $('#update-plugin-version').show() $('#cancel-version-editing').show() $('#edit-plugin-version-description').show() }); $('#update-plugin-version').click(function (event) { var description = $('#edit-plugin-version-description').val(); var oldDescription = $('#plugin-version-description').text(); var confirmMessage = "Are you sure you want to update plugin version description from\n"+ oldDescription +"\nto\n" + description + "\n?"; $('#description-version-modal-update-body').text(confirmMessage); }); function disableEditPluginVersionMode() { $('#edit-plugin-version').show() $('#plugin-version-description').show() $('#update-plugin-version').hide() $('#cancel-version-editing').hide() $('#edit-plugin-version-description').hide() } $('#description-version-update-confirmation').click(function (event) { var description = $('#edit-plugin-version-description').val(); var payload = { pluginId: $('#plugin-id').text(), versionId: $('#plugin-id-version').text(), description: description } var updateFrontendOnSuccess = function() { $('#plugin-version-description').text(description); } var updateFrontendOnFailed = function() { } submitDescription("update-plugin-version-details", payload, updateFrontendOnSuccess, updateFrontendOnFailed); disableEditPluginVersionMode(); }); $('#cancel-version-editing').click(function (event) { disableEditPluginVersionMode(); }); $('#alert-close').click(function (event) { $('#alert-box').hide(); }); $('#delete-plugin-confirmation').click(function (event) { var pluginId = $('#delete-plugin-id-conf').val(); var author = $('#delete-plugin-author-conf').val(); var pluginAuthorValue = $("#pluginAuthorValue").text(); var pluginIdValue = $("#pluginIdValue").text() if(pluginAuthorValue === author && pluginId === pluginIdValue) { deletePlugin(); } else { $("#delete-plugin-error").show(); if(pluginIdValue !== pluginId) { $("#confirm-error-message").text('Error: entered plugin id does not match'); } else { $("#confirm-error-message").text('Error: entered author does not match'); } } }); $('#delete-plugin-id-conf').on('input',function(e){ $("#delete-plugin-error").hide(); }); $('#delete-plugin-author-conf').on('input',function(e){ $("#delete-plugin-error").hide(); }); $('#delete-plugin').click(function(e){ $("#delete-plugin-id-conf").val(""); $('#delete-plugin-author-conf').val(""); }); }) function submitDescription(path, payload, updateFrontendOnSuccess, updateFrontendOnFail) { let json = JSON.stringify(payload); $.ajax({ type: 'PUT', url: '/admin/' + path, data: json, contentType: 'application/json' }) .done(function () { updateFrontendOnSuccess() $('#alert-box').removeClass('alert-danger').addClass('alert-success'); $('#flash-message-text').text('Successfully updated'); }) .fail(function (xhr, status, error) { updateFrontendOnFail() var responseStatus = xhr.status; var errorMessage = 'Update failed'; if(responseStatus == "400") { var message = jQuery.parseJSON(xhr.responseText).errorMessage; errorMessage = errorMessage + " : " + message; } else { var response = xhr.responseText; if (response.includes("Cloudflare")) { errorMessage = errorMessage + " : Cloudflare validation error" } } $('#flash-message-text').text(errorMessage); $('#alert-box').removeClass('alert-success').addClass('alert-danger'); }) .always(function () { $('#alert-box').show(); }); } function deletePlugin() { var pluginId = $('#plugin-id').text() $.ajax({ type: 'DELETE', url: '/admin/plugin?pluginId='+pluginId, contentType: 'application/json' }) .done(function () { $('#alert-box').removeClass('alert-danger').addClass('alert-success'); $('#flash-message-text').text('Successfully deleted'); document.location.href="/"; }) .fail(function (xhr, status, error) { var responseStatus = xhr.status; var errorMessage = 'Deletion failed'; var json = jQuery.parseJSON(xhr.responseText) if(typeof json =='object') { var errorMessage = json.errorMessage; if (typeof errorMessage !== 'undefined') { errorMessage = errorMessage + " : " + message; } } $('#flash-message-text').text(errorMessage); $('#alert-box').removeClass('alert-success').addClass('alert-danger'); }) .always(function () { $('#alert-box').show(); }); } </script> </div> </div> <footer> <div class="terms"> <a href="https://plugins.gradle.org/docs/terms">Terms of Use</a> and <a href="https://gradle.com/legal/privacy/">Privacy Policy</a> apply </div> <p class="copyright">&copy; <a href="https://gradle.org/company/">Gradle, Inc.</a> 2024</p> </footer> <script type="text/javascript" integrity="sha256-3qctdUZX/6QPVNn4hg55oarXzLBDDCkQ6AaG8ehXgDg="> $(function () { $('[data-toggle="tooltip"]').tooltip(); }); </script> <script src="/shared-assets/shared/scripts/prism.js"></script> <script src="/shared-assets/shared/scripts/collapse.js"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10