Gradle 插件开发指南
开发自定义Gradle插件Gradle插件是封装可重用的构建逻辑的一种方式,可以在许多不同的项目和构建中使用。Gradle允许您实现自己的插件,以便重用您的构建逻辑,并与他人共享。 您可以使用任何语言来实现Gradle插件,只要最终实现编译为JVM字节码即可。在我们的示例中,我们将在独立的插件项目中使用Java作为实现语言,在构建脚本插件示例中使用Groovy或Kotlin。通常情况下,使用静态类型的Java或Kotlin实现的插件将比使用Groovy实现的相同插件性能更好。 打包插件有几个地方可以放置插件的源代码。 构建脚本您可以直接在构建脚本中包含插件的源代码。这样做的好处是,插件会自动编译并包含在构建脚本的类路径中,无需进行任何操作。但是,插件在构建脚本之外不可见,因此您无法在定义插件的构建脚本之外重用该插件。 buildSrc项目您可以将插件的源代码放在rootProjectDir/buildSrc/src/main/java目录中(或rootProjectDir/buildSrc/src/main...
Maven & Gradle 多环境配置
Gradle 多环境配置目录结构 指定环境打包在 application.yml/yaml/properties 中: 执行 bootJar 打包命令前要先执行 clean【其它和 processResources 相关的命令也要先执行 clean】,否则 active 值不会变! 123spring: profiles: active: @activeProfile@ 修改 build.gradle 的 processResources 任务123456789101112131415161718192021222324252627282930313233def activeProfile = project.properties['activeProfile'] ?: "dev"processResources { exclude { FileTreeElement details -> { (//排除不是当前环境的 yml 配置文件 details.file.na...
如何在 Maven 中央仓库精准查找 Maven 依赖
背景在使用 Maven 构建项目的时候,我们有时候会发现,在 Maven 提供的 https://mvnrepository.com/ 这个网站搜索出来的依赖,有时候并搜索不出来我们想要的依赖。这时候可以在 https://search.maven.org/ 中结合精准查询使用。 场景一:知道用的什么类,如何找到 Maven 依赖知道类的完整路径搜索(其中 fc 代表 full class,知道类的完整路径的时候使用): 1fc:com.google.common.collect.ImmutableSet 只知道类名搜索(其中 c 代表 class,只知道类名的时候使用): 1c:ImmutableSet 场景二:知道 Group ID 或者 Artifact ID,如何找到 Maven 依赖知道 Group ID搜索(其中 g 代表 group id,知道 group id 的时候使用): 1g:com.alibaba 知道 Artifact ID搜索(其中 a 代表 artifact id,知道 artifact id 的时候使用): 1a:druid
Maven 常用指令记录
解决 IDEA 编译爆红问题 mvn idea:idea 功能类似断点续传,爆红可能是之前有哪些包没有加载进来 invalidate cache restart -> 再重新 reimport 可能只是单纯 IDEA 缓存的问题 mvn idea:module 根目录下 .iml 文件没有可能会导致不识别 .java 文件,需要重新生成 绝大部分时候,删除项目下的 .iml 文件,再重新 import 下就可以解决问题 IDEA Maven 下载源码出现:Cannot download sources Sources not found for: xxx 12# 在对应项目 pom.xml 所在目录下执行以下命令:mvn dependency:resolve -Dclassifier=sources 记录 Maven 常用参数123456789101112131415161718192021222324252627282930-h,--help Display help informati...
将 Maven 包发布到 Maven 中央仓库
注意点: 测试 gpg 和 javadoc 插件不适用于 JDK 11,JDK 8 测试没问题 同一个版本号不可以重复发布 无法删除已发布的包 注册 Sonatype 的账户注册地址 点击界面上方 Create 按钮即可创建 Issue。 12345678Project: Community Support - Open Source Project Repository Hosting (OSSRH)Issue TypeRequired: New ProjectSummary: Jar 包的名称# 注意这里,group id 需要证实当前域是你本人所有的,我就在这里配错了,找了好半天,详细的过程可以看这里 https://issues.sonatype.org/browse/OSSRH-79407Group Id:io.github.wang-xiaowuProject URL:项目站点,如:https://gitee.com/snowheart/dingtalk-robotSCM url:项目源码仓库,如:https://gitee.com/snowheart/din...
Maven 配合 Fabric8 插件整合使用
Maven 配合 fabric8 插件整合使用(谨供参考) 自建镜像仓库并推送到远端定义 properties: 123456789<docker.plugin.version>0.35.0</docker.plugin.version><!--docker 守护进程 uri,一般是自己的 docker 所在环境:2375--><docker.host>http://localhost:2375</docker.host><!--镜像推送及拉取地址--><docker.registry>docker.io</docker.registry><!-- namespace 使用本人 docker 用户名 --><docker.namespace>xxx</docker.namespace><docker.username>xxx</docker.username><docker.password>xxx</doc...
Gradle 构建工具
介绍Gradle 是 Google 开发的基于 Groovy 语言,用于代替 Ant 构建的一种配置型语言。 Gradle 是基于 Groovy 语言实现(基于 JVM 的语法和 Java 类似的脚本语言)的一个 Android 编译系统,Google 针对 Android 编译用 Groovy 语言开发了一套 DSL 语言,有额外需要直接使用 Groovy,或者 Java 代码解决。 下载 / 安装地址:http://services.gradle.org/distributions/ 环境配置123456GRADLE_HOME={installed path}PATH=%GRADLE_HOME%\bin# 缓存依赖项/元数据/插件数据# 该属性的默认值根据平台不同而不同,Windows平台默认为C:\Users\用户名\.gradle,Linux和Mac平台默认为~/ .gradle。可以通过设置该属性来指定Gradle用户目录的位置# GRADLE_USER_HOME= 验证gradle -v 问题&解决办法记录Idea中gradle...
Maven 常用插件(长期整理)
maven-compiler-plugin这个插件是用来编译源代码的。 例如报错 static import declarations are not supported in -source 1.3,这是因为编译的时候默认是 1.3 版本。可以设定编译器的版本为 1.6。 注意:target 版本一定大于等于 source 版本。 用法: 12345678910111213<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6<...
配置 Maven 第三方仓库地址的两种方式
Mirror 与 Repositories 的区别Mirror mirror 相当于一个拦截器,它会拦截 Maven 对 remote repository 的相关请求,把请求里的 remote repository 地址重定向到 mirror 里配置的地址。 Repositories 步骤一:优先查询本地仓库地址是否存在,不存在,继续; 步骤二:从配置的 center repository 下载,没找到,继续; 步骤三:依次从配置的 <repositories> 下配置的一个或者多个远程仓库下载,如果均请求不到,就会报错了。 Maven 最佳配置 配置 mirror,避免中央镜像墙内网络问题 配置远程仓库地址,避免有些资源从单一仓库无法下载下来 方式一:全局配置可以添加阿里云的镜像到 Maven 的 setting.xml 配置中,这样就不需要每次在 pom 中添加镜像仓库的配置,在 mirrors 节点下面添加子节点: 配置镜像注: Maven 默认中央仓库的 id 为 central。id 是唯一的。因此可以使用 <id>central</i...
