当前位置: 首页 > 知识库问答 >
问题:

用Gradle发布自定义jar输出?

孟英锐
2023-03-14

我有一个gradle构建脚本,它检索了一些常见的依赖项,并将它们组合起来创建了一个“胖罐子”。

apply plugin: 'java'
apply plugin: 'maven'

version '1.2.3'

sourceSets {
   main {
      resources.srcDirs = ["resources"]  
   }
}

repositories {
    mavenCentral()
}
dependencies {
  runtime 'commons-cli:commons-cli:1.3.1'                            
  ....
  runtime 'xerces:xercesImpl:2.11.0'

}


//create a single Jar with all dependencies
task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Some common jars',  
            'Implementation-Version': version
    }
    from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}



uploadArchives {
   repositories {

      mavenDeployer {
        repository(url: "http://localhost:8081/artifactory/org-sandbox") {
            authentication(userName: "admin", password:"password")
        }
        pom.groupId = 'org.something'
      }
   }

}

共有1个答案

苏君昊
2023-03-14

根据Rage的建议,我切换到maven-publish,它允许指定工件(通过任务名)。这招奏效了。

publishing {
  publications {
     maven(MavenPublication) {

       groupId 'org.something'

       artifact fatJar 
    }
 }

 repositories { 
  maven {
    url "http://localhost:8081/artifactory/sandbox"
    credentials { 
       username 'admin' 
       password 'password' 
    }
  }

}

 类似资料:
  • 我想有一个gradle项目,使用自定义任务创建一个jar(不使用任何gradle java插件)。什么是正确的方法来构建build.gradle,以便我可以在我的Android应用程序的gradle项目中依赖它? 更多详情: 目前,我的jar文件是在我从gradle调用的cmake项目中创建的。我想要一个合适的体形。调用我的cmake命令的gradle文件然后使用生成的jar作为工件。然后,我希望

  • 我已经构建了一个定制的gradle插件,我正试图将其发布到一个私有的maven repo。我使用插件来实现这一点。在经历了很多麻烦之后,我查看了google play services插件的实现(https://github.com/google/play-services-plugins/blob/master/google-services-plugin/publish.gradle)并试图复

  • 我为gradle创建了一个简单的基于groovy的插件。 在我的毕业典礼上。构建文件我有以下内容: 一切都很好,我得到了一个构建目录和一个. jar在lib文件夹中生成,我想这是独立的插件。 现在我想知道如何将这个新插件注册到我的gradle安装中,这样我就可以应用插件了:“myPlugin”我做了以下工作: 将插件放入安装中的插件文件夹 创建了myplugin.properties文件并将其包含

  • Gradle版本:3.5 我试图发布我的自定义每1k展现的收入神器,但留档是真的不清楚这应该如何做。 这是我们发布的gradle脚本的摘录: 我不确定应该如何在发布闭包中引用每1k展现的收入工件的自定义。使用工件名称('our-software-rpm')不起作用,使用任务名称(rpmArts)也不起作用。那么我该怎么办? 此外,该项目还应用java插件来获取一个ArtifactHandler,该

  • 我有一个自定义dto类: 和一个使用Web Api(4.5. net框架)的控制器 客户端只有4.0.net框架,因此我将无法使用PostAsJsonAsync()方法。将对象从客户端传递到服务器的解决方案是什么? 我尝试了如下方法: 然而它给了我一个例外: 难道不能使用牛顿软件库吗?

  • Web 第三方应用开发-资源发布 资源上线 发布成功 Web 第三方应用开发-资源发布 更新时间:2018-07-03 22:17:05 本章介绍如何把您的应用资源上线。 资源上线 点击“线上发布”按钮: 发布成功