当前位置: 首页 > wzjs >正文

商城网站制作教程张家港外贸网站建设

商城网站制作教程,张家港外贸网站建设,phpwind 企业网站,大连建设网球场价格我们知道,如果同一个版本发布两次 那么第二次会报错,大概意思是 maven 私服同一个版本只能发布一次,不能覆盖 或许可以设置强行覆盖,即使支持版本覆盖一般也不会这么干 问题 为什么我点击一次 publish 同一个版本上传了两次&a…

在这里插入图片描述

我们知道,如果同一个版本发布两次

那么第二次会报错,大概意思是 maven 私服同一个版本只能发布一次,不能覆盖

或许可以设置强行覆盖,即使支持版本覆盖一般也不会这么干

问题

为什么我点击一次 publish 同一个版本上传了两次(发布了两次)

分析

有问题:会发布两次的配置

build.gradle.kts

plugins {alias(libs.plugins.jetbrains.kotlin.jvm)//插件开发id("java-gradle-plugin")//maven  发布id("maven-publish")
}val checkArtifactId = project.properties["ARTIFACT_ID"] as String
val checkGroupId = project.properties["GROUP_ID"] as String
var checkVersion = project.properties["VERSION"] as String
//指定插件 ID 和入口
gradlePlugin {plugins {create("Check") {//1、同 agp7+ 应用插件的 ID,apply plugin: 'com.primer.plugin'//2、会再发布一个 id + gradle.plugin 的 pomid = checkGroupIdgroup = checkGroupIdversion = checkVersionimplementationClass = "com.primer.plugin.Check"}}
}//插件发布
publishing {publications {create<MavenPublication>("maven") {from(components["kotlin"])groupId = checkGroupIdversion = checkVersionartifactId = checkArtifactId}}repositories {maven {isAllowInsecureProtocol = truecredentials {username = "123456"password = "123456"}url = uri("http://maven 私服地址")}}
}

点击一次 publishToMavenLocal,以下是按顺序执行的 Task

这一看可能不知道这些任务是做什么的,输出产物是什么?

那我们就挨个任务点击运行,看看关键任务输出的产物是什么

publishToMavenLocal:check:generatePomFileForCheckPluginMarkerMavenPublication//生成插件的 pom【com.primer.plugin.gradle.plugin-1.0.0.123.pom】//需要注意的是生成带有 gradle.plugin 的 pom,在以前 AGP7+ 没见过,可能是 AGP8+ 新引入的:check:publishCheckPluginMarkerMavenPublicationToMavenLocal :check:checkKotlinGradlePluginConfigurationErrors:check:extractPluginRequests:check:generatePluginAdapters:check:compileKotlin:check:compileJava:check:compileGroovy:check:compileGroovyPlugins:check:pluginDescriptors:check:processResources:check:classes:check:jar:check:generateMetadataFileForMavenJavaPublication:check:generatePomFileForMavenJavaPublication//生成 com.primer.plugin.check JAR,插件所有的代码打包成 jar:check:publishMavenJavaPublicationToMavenLocal【1:check:generateMetadataFileForPluginMavenPublication:check:generatePomFileForPluginMavenPublication//生成 com.vimedia.plugin.check JAR,插件所有的代码打包成 jar//😮问题暴露了,这里第二次生成 jar,导致了 maven 发布报错问题:check:publishPluginMavenPublicationToMavenLocal【2:check:publishToMavenLocal

所以问题出现了:

为什么有两个任务都发布 jar

这两个到底是什么?

能不能去掉其中一个?

  • publishMavenJavaPublicationToMavenLocal
  • publishPluginMavenPublicationToMavenLocal

后来对比 AGP7+ 的 maven 发布 build.gradle 配置,主要存在以下两个区别:

  • 在 AGP8+ 开发中 build.gradle.kts引入了新的插件 id("java-gradle-plugin")(以前在 AGP7+ 的插件开发中是没有引入这种插件的)
  • 插件创建的方式不同

AGP7+ 创建插件

1、创建 resource 目录,新建 META-INF.gradle-plugins
2、目录下新建 com.primer.plugin.properties 插件 Id 文件(com.primer.plugin 这部分就是插件引用是的插件 Id)
3、文件内配置插件入口类 implementation-class

在这里插入图片描述

AGP8+ 创建插件

val checkGroupId = project.properties["GROUP_ID"] as String
var checkVersion = project.properties["VERSION"] as String
gradlePlugin {plugins {create("Check") {//1、同 agp7+ 应用插件的 ID,apply plugin: 'com.primer.plugin'//2、会再发布一个 id + gradle.plugin 的 pom//3、artifactId = project.archivesBaseName (如果未设置,则默认为 project.name)id = checkGroupId //插件 Id,com.primer.plugingroup = checkGroupIdversion = checkVersion//artifactId = project.archivesBaseName (如果未设置,则默认为 project.name)//artifactId = checkArtifactIdimplementationClass = "com.primer.plugin.Check" //插件入口类}}
}

正是两种不同的插件创建方式导致了这次问题的发生

警告不断的调试,当我注释掉 build.gradle.kts 中的 publishing -> publications 部分

上述的两个生成 jar 的任务只剩下其中一个了,问题应该解决了

在这里插入图片描述

解决

所以最终的插件发布配置是这样的

build.gradle.kts

plugins {alias(libs.plugins.jetbrains.kotlin.jvm)//插件开发id("java-gradle-plugin")//maven  发布id("maven-publish")
}val checkGroupId = project.properties["GROUP_ID"] as String
var checkVersion = project.properties["VERSION"] as String
//指定插件 ID 和入口
gradlePlugin {plugins {create("Check") {//1、同 agp7+ 应用插件的 ID,apply plugin: 'com.primer.plugin'//2、会再发布一个 id + gradle.plugin 的 pomid = checkGroupIdgroup = checkGroupIdversion = checkVersionimplementationClass = "com.primer.plugin.Check"}}
}//插件发布
publishing {repositories {maven {isAllowInsecureProtocol = truecredentials {username = "123456"password = "123456"}url = uri("http://maven 私服地址")}}
}

问题根本原因是:

使用插件 id(“java-gradle-plugin”) 创建插件 gradlePlugin-plugins-create 会自动创建 publications,无需重复配置


文章转载自:

http://V7mZmSxT.pjfmq.cn
http://4vdm1PR2.pjfmq.cn
http://eap9C01S.pjfmq.cn
http://cIuOY7FF.pjfmq.cn
http://OdvUSvkE.pjfmq.cn
http://HdX8nM8h.pjfmq.cn
http://ymdwS8Mr.pjfmq.cn
http://JkF1jOvC.pjfmq.cn
http://OlBlGykI.pjfmq.cn
http://tNIxjFbk.pjfmq.cn
http://8F8tOO9U.pjfmq.cn
http://B48OK4pJ.pjfmq.cn
http://aJ8wxd0e.pjfmq.cn
http://QgCEfAFD.pjfmq.cn
http://wycpzY6h.pjfmq.cn
http://prYBeFQa.pjfmq.cn
http://AV1pFGN2.pjfmq.cn
http://J8Iw5v7r.pjfmq.cn
http://dGVvK9gi.pjfmq.cn
http://77y43O8P.pjfmq.cn
http://07h3XLNK.pjfmq.cn
http://mQ6FJtJP.pjfmq.cn
http://r0KIrg7w.pjfmq.cn
http://hxaPWucG.pjfmq.cn
http://gGsdxdlF.pjfmq.cn
http://K8cFCyz6.pjfmq.cn
http://Xdwz0clE.pjfmq.cn
http://7MGyuM6s.pjfmq.cn
http://LzGyDesr.pjfmq.cn
http://OWcijKvL.pjfmq.cn
http://www.dtcms.com/wzjs/746511.html

相关文章:

  • seo门户网站建设方案德州哪里有学做网站的
  • 西安制作网站软件展览公司
  • 鹿泉市建设局网站对网站建设起到计划和指导的作用
  • php网站开发实例教程源码网站seo完整seo优化方案
  • 网站设计 中国风商河便宜做网站的公司
  • 做装修的网站怎么做好赣州企业网站建设
  • 做存储各种环境信息的网站建设手机版网站需要主机多少空间
  • WordPress程序漏洞seo课程培训班费用
  • 成都市双流区建设局官方网站广州洲聚网站开发
  • 网站开发需要几个专业网站结构优化包括什么
  • 做外贸的人常用的网站开发工具都有什么
  • 环保企业网站建设现状百度关键词排名突然没了
  • 网站服务器放置地怎么填自己设计装修的app
  • 网站维护属于什么专业怎么弄一个公司网站
  • 网站建设宣传的目的阳江网胜
  • 做网站运营工作有前景吗建设网站公司 昆山
  • 网页设计与网站建设设计报告网站建设入门书
  • 更新网站 seo高端建站
  • 湖州网站设计公司的别名是宁波公司网站制作
  • 怎么做购物网站的分类目录建设银行官网首页网站招聘
  • 我想做个网站电子商务网站建设的知识点
  • 网站建设综合实训总结与体会友情链接检索数据分析
  • 农业信息网站建设在线设计logo图片
  • wordpress页脚代码一键优化表格
  • ai工具推荐哈尔滨网站优化
  • 网站修改需要什么常设中国建设工程法律网站
  • 网站建设无广告wordpress更新需要连接ftp
  • 商城网站都有什么功能专科医院网站建设
  • 凡科做网站类型应该做哪个iis7.5 查看网站流量
  • 赣州建站服务如何做公司网站网页