如何使用 Gradle 构建 Groovy JAR 并将其发布到内部存储库

2023-11-22

我有一个 Groovy 项目,正在尝试使用 Gradle 构建它。首先我想要一个package通过根据其依赖项进行编译来创建 JAR 的任务。然后我需要为该 JAR 生成 Maven POM 并将 JAR/POM 发布到内部 Artifactory 存储库。这build.gradle:

apply plugin: "groovy"
apply plugin: "maven-publish"

repositories {
    maven {
        name "artifactory01"
        url "http://myartifactory/artifactory/libs-release"
    }
}
dependencies {
    compile "long list starts here"
}

// Should compile up myapp-<version>.jar
jar {
}

// Should publish myapp-<version>.jar and its (generated) POM to our in-house Maven/Artifactory repo.
publishing {
    publications {
        myPublication(MavenPublication) {
            from components.java
            artifact sourceJar {
                classifier "source"
            }

            pom.withXml {
                // ???
            }
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}

但是我不相信我已经正确设置了版本控制jar任务(例如,我怎样才能让它创建myapp-1.2.1 vs. myapp-1.2.2?我也不认为我有我的publications正确设置配置:应该输入什么pom.withXml?


非常欢迎您使用artifactory插件。 该文档可以在以下位置找到:我们的用户指南下面您可以找到 gradle build 的完整工作示例。

Run gradle build artifactoryPublish构建并发布项目。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '3.0.1')
    }
}
apply plugin: 'java'
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.artifactory'

group = 'com.jfrog.example'
version = '1.2-SNAPSHOT'
status = 'SNAPSHOT'

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.5'
    testCompile 'junit:junit:4.11'
}

task sourcesJar(type: Jar, dependsOn: classes) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

publishing {
    publications {
        main(MavenPublication) {
            from components.java
            artifact sourcesJar
    }
}

artifactory {
    contextUrl = 'http://myartifactory/artifactory'
    resolve {
        repository {
            repoKey = 'libs-release'
        }
    }
    publish {
        repository {
            repoKey = 'libs-snapshot-local'
            username = 'whatever'
            password = 'whatever123'
        }
        defaults {
            publications 'main'
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Gradle 构建 Groovy JAR 并将其发布到内部存储库 的相关文章

随机推荐

  • MySQL Workbench 会话看不到数据库更新

    我使用 deb 在 Ubuntu 系统中安装了 MySQL Workbench community 6 2 3 工作台会话似乎没有看到其他会话 应用程序 命令行客户端 对数据库完成的更新 DML 新会话能够在启动时看到数据库的正确状态 但随
  • 动态更改源后加载音频元素

    我的页面正文中出现了几个音频元素 他们看起来像这样
  • python中有内置的恒等函数吗?

    我想指出一个不执行任何操作的函数 def identity args return args 我的用例是这样的 try gettext find gettext gettext else identity 当然 我可以使用identity上
  • java.lang.ClassNotFoundException: org.joda.time.ReadablePartial

    我使用 Eclipse Luna 和 Jaspersoft Studio 插件 6 2 2 来生成 Web 应用程序的开发人员报告 从 Eclipse 插件运行一份基本的空白报告没有问题 但是当我从 java 类加载此 jrxml 时 我收
  • 如何使用 ajax POST 到 php

    我似乎不知道如何使用ajax 来发帖 我做了一个愚蠢的表格来尝试一下 即使将其一直削减到只有两个值 仍然无法让任何东西发挥作用 我的html是这样的
  • MS Graph API C# 将用户添加到组

    我一直在研究如何使用 Microsoft Graph API nuget 上提供的 dotnet C 库 从 Azure AD 组中添加 以及稍后删除 用户 Nuget MS Graph API 忽略与连接相关的所有其他内容GraphSer
  • 使用servicestack捕获异常

    我们使用 ServiceStack 来提供基于 REST 的服务已经有一段时间了 到目前为止 它的表现令人惊叹 我们所有的服务都写成 public class MyRestService RestService
  • 如何让任务计划程序从 powershell 脚本检测失败的错误代码

    我有一些 powershell 脚本 当它们内部出现故障时 我试图在 Windows 任务计划程序中将它们触发为失败状态 所以我在 powershell 脚本中做了类似的事情 我尝试了退出代码 1 或 99 但看起来 Windows 任务计
  • Python请求库如何使用单个令牌传递授权标头

    我有一个请求 URI 和一个令牌 如果我使用 curl s
  • 如何在C#中触发与最大化相关的事件

    考虑以下代码 Window myWindow new MyWindowSubclass myWindow BringIntoView myWindow Show Code which is effective as pressing the
  • 具有主键和唯一键的表意外锁定

    对于同时具有主键和单独的唯一索引的表上的事务 我遇到了 innodb 锁定问题 看起来如果 TX 使用唯一键删除一条记录 然后重新插入相同的记录 这将导致下一个键锁定而不是预期的记录锁定 因为键是唯一的 请参阅下面的测试用例以及我希望拥有哪
  • 为什么局部静态对象的初始化使用隐藏的保护标志?

    C 中的局部静态对象在第一次需要时初始化一次 如果初始化有副作用 则这是相关的 void once static bool b std cout lt lt hello lt lt std endl return true once第一次调
  • 是否有一个类可以从 .NET 中的 XSD 架构生成示例 XML 文档

    在 Visual Studio 中 您可以从现有架构创建模板 XML 文档 新的XML 模式浏览 器VS2008 SP1 更进一步 可以创建包含数据的示例 XML 文档 NET 中是否有一个类库可以自动执行此操作 而无需使用 Visual
  • Apple Music 与 MPNowPlayingInfoCenter 冲突

    当我的音乐播放器应用程序在后台播放时 我需要一些帮助来解决问题 我可以使用这两种服务在应用程序和后台播放音乐 我还可以设置MPNowPlayingInfoCenter它显示正确的信息 但播放 暂停 下一首曲目和上一首曲目只有在用户通过 Sp
  • 在 Python 中对数字进行四舍五入但保留末尾的零

    我一直在编写一个脚本 该脚本从 Excel 电子表格中获取数据 对数字进行四舍五入 并删除小数点 例如 2606 89579999999 变为 26069 但是 我需要将数字四舍五入到小数点后两位 即使会有尾随零 因此 2606 89579
  • Swift - 如何创建带有裁剪形状的视图

    我正在尝试使用 swift 1 2 和 xcode 6 来实现图像中显示的结果 基本上我想创建一个带有切入形状的视图 以便能够看到下面的视图 为我的应用程序制作教程 我知道如何创建圆形形状 但不知道如何在视图中将其剪掉 我需要一个完整的例子
  • 将 Spark 数据帧保存到 Hive:表不可读,因为“parquet 不是 SequenceFile”

    我想使用 PySpark 将 Spark v 1 3 0 数据帧中的数据保存到 Hive 表中 The 文档 states spark sql hive convertMetastoreParquet 设置为 false 时 Spark S
  • 将线程绑定到处理器

    当我运行多线程代码时 系统 Linux 有时会将线程从一个处理器移动到另一个处理器 由于我有与处理器一样多的线程 它会无缘无故地使缓存失效 并且会混淆我的跟踪活动 您知道如何将线程绑定到处理器吗 为什么系统要这样做 Use sched se
  • NextJs 多区域共享标头

    我有 2 个应用程序管理外壳 and 交付管理我正在 NextJs 中使用多区域来处理这个问题 这两个应用程序都使用带有导航链接的共享标头 但我在从一个区域导航到另一个区域时遇到问题 管理外壳使用 next config js 文件在端口
  • 如何使用 Gradle 构建 Groovy JAR 并将其发布到内部存储库

    我有一个 Groovy 项目 正在尝试使用 Gradle 构建它 首先我想要一个package通过根据其依赖项进行编译来创建 JAR 的任务 然后我需要为该 JAR 生成 Maven POM 并将 JAR POM 发布到内部 Artifac