首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Gradle:仅在发布到本地时更改工件名称

在Gradle构建工具中,有时你可能希望在发布到本地仓库时更改生成的工件的名称,以区分不同的构建环境或版本。这可以通过配置Gradle的maven-publish插件来实现。

基础概念

工件(Artifact):在软件构建过程中生成的任何文件,如JAR、WAR、ZIP等,都可以被视为工件。

发布到本地仓库:指的是将构建好的工件安装到本地的Maven仓库中,这样其他项目可以引用这个本地仓库中的依赖。

相关优势

  • 区分环境:通过不同的工件名称,可以轻松区分开发、测试和生产环境的构建产物。
  • 版本控制:有助于更好地管理和追踪不同版本的工件。

类型与应用场景

  • 类型:通常涉及修改JAR、WAR等文件的名称。
  • 应用场景:当需要在本地进行调试或测试,同时又不想干扰到正式版本的工件时。

示例配置

以下是一个Gradle配置示例,展示了如何在发布到本地仓库时更改工件名称:

代码语言:txt
复制
plugins {
    id 'java'
    id 'maven-publish'
}

group = 'com.example'
version = '1.0.0'

publishing {
    publications {
        maven(MavenPublication) {
            artifactId = 'my-library'
            from components.java

            // 仅在发布到本地时更改工件名称
            if (project.hasProperty('local')) {
                artifactId += '-local'
                version += '-SNAPSHOT'
            }
        }
    }
    repositories {
        maven {
            url = "$buildDir/repo"
            if (project.hasProperty('local')) {
                url = "$buildDir/local-repo"
            }
        }
    }
}

// 在命令行中使用 -Plocal 参数来触发本地发布配置

遇到问题及解决方法

问题:为什么更改工件名称的配置没有生效?

原因:可能是因为没有正确地在命令行中传递-Plocal参数,或者Gradle配置文件中的条件判断有误。

解决方法

  1. 确保在运行Gradle任务时添加了-Plocal参数,例如:
  2. 确保在运行Gradle任务时添加了-Plocal参数,例如:
  3. 检查Gradle脚本中的条件逻辑,确保它正确地检测到了local属性。

通过上述配置和方法,你可以灵活地在不同的构建场景下调整工件的名称,以满足特定的开发和部署需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ③ ( 配置上传工件 | 将 Gradle 插件 jar 包、源码、文档上传到本地Maven 仓库 )

    文章目录 一、配置 artifacts 工程工件 二、配置上传工件 三、将 Gradle 插件 jar 包、源码、文档上传到本地Maven 仓库 Android Plugin DSL Reference...包中 ; artifacts 配置 , 是用于配置 工程工件 对应的 jar 包产出 配置 ; // 配置 工程工件 对应的 jar 包产出 配置 // 这里将 文档打包 和 源码打包 后的 jar...publications " 中 , 配置 artifact sources2Jar 上传源码 , 配置 artifact document2Jar 上传文档 ; // 发布到 远程/本地仓库 相关配置...包名称 // 最终打包的名称是 plugin-0.1-doc.jar baseName 'plugin' // 指定分类器 , 与其它 jar 包进行区分 classifier.../ 这里将 文档打包 和 源码打包 后的 jar 包作为输出 artifacts { archives sources2Jar archives document2Jar } // 发布到

    1.5K20

    Gradle 6.6 发布,引入配置缓存特性,大幅提升构建性能

    来源 | https://www.oschina.net/news/117987/gradle-6-6-released Gradle 6.6 发布了。...现在,运行时类路径分析将检查清单META-INF文件和属性文件,而忽略对注释、空格和顺序差异的更改。此外还可以有选择地忽略不影响运行时类路径的属性。...处理用户提供的凭证 构建有时会要求用户提供凭据,例如,为了发布工件,可能需要凭证才能与工件存储库进行身份验证。将凭据保留在构建脚本之外是一个好习惯。...从此版本开始,可以轻松地将用于身份验证的凭证外部化到工件存储库: repositories { maven { name = 'mySecureRepository'...属性中使用名称loginUsername和loginPassword进行搜索。

    1K10

    Artifactory清理未使用的二进制品的最佳实践

    考虑到软件开发的动态性质,大多数组织都有自己的数据保留策略。由您决定可以清除哪些数据,但是内置工具可以覆盖大多数情况。...这意味着用户在上载快照工件时需要遵循预定义的模式(大多数客户端会自动处理)。...要在Artifactory中启用此功能,请更新本地存储库设置: 2.png 启用此设置后,在“最大唯一快照数”上方进行的上传将在下次构建运行期间删除所有较早的发行版。...但是,如果项目使用的工件有所更改,则值得定期清除缓存。 在Artifactory中有支持此功能的内置系统。要启用自动缓存清除,请转到远程存储库菜单的“高级”部分。...您可以在“ 未使用的工件清理期”部分中添加清理工件之前的小时数: 3.png 这并不意味着工件会在12小时后被删除。相反,它在内部将工件标记为“未使用”。

    3.6K00

    Android:发布aar包到maven仓库以及 maven插件 和 maven-publish 插件的区别

    插件 maven插件,是 Gradle 1.0 的时候提供的用于发布aar/jar包到 Maven 仓库的插件。...在 Gradle 1.3 中,引入了一种新的发布插件,即:maven-publish ,这个新的插件引入了一些新概念和新功能,使 Gradle 发布功能更加强大,现在是发布工件的首选选项。...这里配置的仓库地址是一个本地路径,即把 aar 发布到本地的一个文件夹中。...-> // 名称可以随便定义,这里定义成 maven,是因为我的 aar 包是发布到 maven 仓库的,所以这里为了见名知义,定义成了 maven // 任务名称:maven...Android Gradle 插件会为应用或库模块中的每个构建变体工件创建一个组件,您可以使用它来自定义要发布到 Maven 代码库的发布内容 Android 插件所创建的组件取决于模块是否使用应用或库插件

    4.5K30

    Gradle -- 初体验

    3.cmd查看版本:gradle -v ? 如此,我们便成功的安装了gradle。 二.创建gradle的java工程 1.新建工程 和Maven的使用一样,我们创建工程时需要选择gradle。...settings.gradle文件则指定了工程的名称。 3.gradle控制台 ? 如图,我们进入到gradle的控制台,可以看到和Maven还是有些差别的。...一个jar包属于一个工件,在gradle中,工件在仓库的坐标是group、name以及version。...而工件存放在仓库里,在gradle中常用的仓库有mavenLocal、mavenCentral、jcenter,其中mavenCentra和jcenter是中央仓库,mavenLocal则是本地仓库 。...Tips: 如果发生依赖版本冲突,gradle默认可以解决版本冲突的问题,当出现两个不同版本的依赖时,gradle默认会使用最高版本那个 。

    1K20

    GitLabCI系列之流水线语法第五部分

    artifacts 用于指定在作业成功或者失败时应附加到作业的文件或目录的列表。作业完成后,工件将被发送到GitLab,并可在GitLab UI中下载。...---- artifacts:name 通过name指令定义所创建的工件存档的名称。可以为每个档案使用唯一的名称。artifacts:name变量可以使用任何预定义变量。...on_success仅在作业成功时上载工件。这是默认值。on_failure仅在作业失败时上载工件。always 上载工件,无论作业状态如何。...要仅在作业失败时上传工件: job: artifacts: when: on_failure ---- artifacts:expire_in 制品的有效期,从上传和存储到GitLab的时间开始算起...如果无法显示此页面,需要更改系统设置。此选项可能会加大资源占用,默认禁用了需要启用。

    3.4K20

    Kotlin 1.4-M1 现已发布!

    我们准备将它发布到 Maven 并包含在标准库以外的 Kotlin 分发中。当前,我们已经将它与 1.4-M1 工件一同发布到 bintray 存储库。...在 build.gradle.kts 文件中的目标块内,现已支持 produceExecutable(),如果您想要在构建时生成 .js 工件,则必须使用它: 如果您要编写 Kotlin/JS 库,可以忽略...依赖这种库时,Gradle 会自动选择正确的工件(即无需指定 IR 特定的坐标)。...将声明导出到 JavaScript 中 使用 IR 编译器后端时,标记为公开的声明将不再自动导出(即使名称毫无逻辑的版本也不会)。...在同一个 Maven 坐标下发布时,Gradle 会根据用例自动选择正确的工件:为旧编译器选择 js,为新编译器选择 klib。

    3.5K20

    杂篇:一代版本一代神

    ,更不用说什么依赖管理 当我刚用AndroidStudio时,最不解的就是Gradle,开始一段时间基我俩井水不犯河水 我依然用着我的jar包,在src下写代码,似乎不用Gradle也没什么影响...第一次接触Gradle是看一片介绍oKHttp的文章,照着写一句,然后神奇的就OK了 这让我很惊讶,当看到源码时发现已经下载到本地了。...|---依赖管理、编译、测试、打包、发布、灵活的脚本 3.Gradle是什么,怎么安装?...可详见: 依赖管理.png 工件坐标:(group,name,version) 工件仓库:mavenCentral/jcenter 依赖的传递:若A-->B B-->C 则A-->C implementation...使用maven-publish插件,发表到中央仓库挺麻烦的,还是自己搭个私服,或直接本地吧 maven.png 以上是Gradle在java中的使用,现在回头看一下Android里的Gradle

    1.2K20

    使用新 Android Gradle 插件加速您的应用构建

    这一改动可以在您向运行时依赖项中添加新资源时,避免重新编译下游模块。在这种场景下,可以给您的应用带来 40% 的性能提升。另外,在清理构建产物时,我们发现性能有 5% 到 10% 的改善。...从上图可以看到,所有的任务输入也会被存储到缓存中,因此它们必须是特定的 Gradle 类型,或是可以序列化的数据。...修改构建时产生的工件 在这个部分,我们要通过修改 asset 的工件来向 APK 添加额外的 asset,代码如下: // buildSrc/src/main/kotlin/AddAssetTask.kt...这段代码中我们将额外 asset 的内容硬编码为 "foo",但后面的步骤我们会对这里进行更改,还请您阅读时留意。...Android Gradle 插件为不同工件提供了额外的访问方式,比如当您想要校验某个工件的内容时,可以通过下面的代码来获得 AAR 工件: androidComponents.onVariants {

    2.7K30

    简化跨微服务重用,API 标准化过程中的左移法

    API 以 OpenAPI 格式指定,并在版本控制系统中维护,API 定义可以遵循与其他代码工件相同的评审过程。开发人员可以为 API 更改创建 pull 请求,并让同事提供反馈。...等待同事评审 API 更改可能会导致周期变慢,对开发人员的工作效率产生不利的影响,特别是涉及到评审过程中可以自动化的方面时。当组织规模扩大,更多的开发人员开始参与 API 开发时,这个过程也无法扩展。...由于 Zally 缺少像 checkstyle、ktlint、spot bug 这样的插件,所以我在使用 Zally 时遇到了以下几个痛点: 为了使用 CLI 工具,开发人员需要在本地或远程系统上托管...所以我决定编写自己的 Gradle 插件,它既可以集成在本地开发环境中,也可以集成在 CI 工具中,帮助我验证和提取不同格式的验证结果。...定制 Zally 插件 zally-gradle-plugin 是一个用 kotlin 编写的 Gradle 插件,可以集成到构建脚本中。

    52810

    Gradle 5.0 正式版发布

    平台定义(又称Maven BOM依赖项)是本地支持的,它允许在不使用外部插件的情况下导入Spring之类的东西。 依赖项对齐允许逻辑组中的不同模块(例如Jackson模块)对齐到相同的版本。...依赖版本锁定 您可以使用Gradle 5.0将动态或远程依赖项锁定到特定的版本,从而使依赖项解析更加确定和可重现,这可以防止依赖项的更改带来地破坏构建问题。...此外,您可以选择生成Groovy或Kotlin DSL构建脚本,并自定义项目名称和包。 ?...APIs Gradle 5.0引入了新的api来改进对Maven和Ivy存储库的管理。主要包括: 签名插件支持对发布的所有工件签名。 发布了配置范围内的依赖项排除。...这使得自定义任务时能够将Gradle模型连接在一起,而不用担心给定的属性值被修改,也不用担心在任务配置期间会避免资源密集型工作。 升级指南 为了升级到5.0版本。

    2.3K30

    Gradle 5.0 正式版发布

    平台定义(又称Maven BOM依赖项)是本地支持的,它允许在不使用外部插件的情况下导入Spring之类的东西。 依赖项对齐允许逻辑组中的不同模块(例如Jackson模块)对齐到相同的版本。...依赖版本锁定 您可以使用Gradle 5.0将动态或远程依赖项锁定到特定的版本,从而使依赖项解析更加确定和可重现,这可以防止依赖项的更改带来地破坏构建问题。...此外,您可以选择生成Groovy或Kotlin DSL构建脚本,并自定义项目名称和包。...APIs Gradle 5.0引入了新的api来改进对Maven和Ivy存储库的管理。主要包括: 签名插件支持对发布的所有工件签名。 发布了配置范围内的依赖项排除。...这使得自定义任务时能够将Gradle模型连接在一起,而不用担心给定的属性值被修改,也不用担心在任务配置期间会避免资源密集型工作。 升级指南 为了升级到5.0版本。

    1.6K20

    写给Android工程师的 Github CI 快速指北

    每次提交代码时,CI 工具会自动构建和运行测试,并给出构建和测试结果的反馈。 持续部署/交付(CD)是指自动化地将代码部署到生产环境或发布到应用商店的过程。...比如我们现在有个 下厨房 Android工程,如果在没有 CI 时,我们最基础的流程通常如下: 开发: 本地开发、调试、push; 测试:本地打包、发给测试同学; 打包: 改版本号、打tag、本地打包、...更改信息,并更新描述,最后再将版本信息通知到相关运营同学; 在应用包上传的过程中,人工必不可少会出现传错包的情况,此时也可以借助 CI 实现打包完成后自动上传应用商店,比如 华为、小米、Gogole...本地创建 我的 Android CI 为示例,直接复制到本地新建的 android.yml 中,如下所示: 图片 将相应的工作流 push 之后,如图所示,我们会发现,我们新 push 的工作流已经被触发了多次...release.yml 在具体的工作流脚本这里,我们的触发时机选择为每次发布新的 release 时,此时就去获取本次 release 对应的 tag_name,并在打包时,通过 Gradle 命令行传参的方式

    86720

    【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑧ ( 设置 Gradle 插件模块 | 将 Gradle 插件上传到自建 Maven 仓库 )

    文章目录 一、设置 Gradle 插件模块 二、执行发布 Gradle 插件任务将 Gradle 插件上传到自建 Maven 仓库 Android Plugin DSL Reference 参考文档 :...// 自定义源码打包任务 // 自定义 Jar 类型的 Gradle 任务 // 将源码打包到 jar 包中 task sources2Jar(type: Jar) { // 指明要打的 jar...这里设置的是 javadoc 和 groovydoc 任务的输出目录 from javadoc.destinationDir, groovydoc.destinationDir } // 配置 工程工件.../ 这里将 文档打包 和 源码打包 后的 jar 包作为输出 artifacts { archives sources2Jar archives document2Jar } // 发布到...插件 - GitHub 地址 : https://github.com/han1202012/Android_UI 二、执行发布 Gradle 插件任务将 Gradle 插件上传到自建 Maven 仓库

    1K30

    Spring认证中国教育管理中心-Spring Data REST框架教程一

    它利用超媒体让客户端自动查找存储库公开的功能,并将这些资源集成到相关的基于超媒体的功能中。 3....3.2.将 Spring Data REST 添加到 Gradle 项目 要将 Spring Data REST 添加到基于 Gradle 的项目,请将spring-data-rest-webmvc工件添加到编译时依赖项...} 3.3.将 Spring Data REST 添加到 Maven 项目 要将 Spring Data REST 添加到基于 Maven 的项目,请将spring-data-rest-webmvc工件添加到编译时依赖项...因此,要查看并可能自定义导出工作方式的核心工件是存储库接口。...4.1.3.资源可发现性 HATEOAS 的一个核心原则是资源应该可以通过发布指向可用资源的链接来发现。关于如何在 JSON 中表示链接,有一些相互竞争的事实上的标准。

    1.7K10

    为什么以及如何升级至 Java 16 或 17

    大多数非长期支持版本都通过小版本升级提供大约 6 个月的支持,直到下一个版本发布。另一方面,LTS 版本几年内都会收到小版本升级,至少到下个 LTS 版本发布。...另一方面,在使用最新的非 LTS 版本时,你应该每隔 6 个月就升级到一个新的非 LTS 版本,否则就无法利用小版本升级了。...准备工作 大多数开发人员都是从升级本地环境开始,然后是构建服务器,最后是各部署环境。...因此,在使用像 JAXB 这样的依赖项时,确保自己使用了比较新的 Jakarta EE 工件。...对于大多数应用程序,从一个 LTS 版本升级到下一个 LTS 版本需要几个小时到几天的时间。大部分时间都花在了构建应用程序上。重要的是先开始,然后逐步更改。这样可以激励自己、团队和管理层继续努力。

    1.1K30
    领券