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

如何在Gradle中发布war和jar类工件

薄龙光
2023-03-14

在马文是超级容易;只需添加一行

<attachClasses>true</attachClasses>

有两个工件进入存储库(doc)

我的build.gradle是:

group = 'org.gradle.sample'
version = '1.0'
apply plugin: 'war'
apply plugin: 'maven-publish'
jar.enabled = true
jar.classifier = 'classes'

repositories {
   mavenLocal()
}

publishing {
    publications {
        p1(MavenPublication) {
            from components.java
        }
        p2(MavenPublication) {
            from components.web
        }
    }
}

dependencies {
    compile 'org.hibernate:hibernate-core:3.6.7.Final'
}

命令:gradle jar PublishToMavenLocal

与Maven类似,2个工件进入存储库(publish-1.0.war和publish-1.0-classes.jar)此外,publish-1.0.pom进入存储库但没有依赖项。最后,对Hibernate的依赖丢失

例如,我创建了另一个依赖于发布的Maven项目

<dependency>
  <groupId>org.gradle.sample</groupId>
  <artifactId>publish</artifactId>
  <version>1.0</version>
  <classifier>classes</classifier>
</dependency>                          

但是没有对Hibernate的依赖:

[信息]——maven依赖插件:2.8:树(默认cli)@我的应用---

[信息]com。我的公司。app:my app:jar:1.0-快照

[INFO]-org.gradle.sample:发布:jar:类:1.0:编译

[信息](我希望Hibernate与它的依赖关系,但没有)

为什么Gradle没有Maven聪明?

共有1个答案

花博厚
2023-03-14

我找到了可怜的解决方案:交换发布顺序

publishing {
    publications {
        p1(MavenPublication) {
            from components.web
        }
        p2(MavenPublication) {
            from components.java
        }
    }
}
 类似资料:
  • 我试图使用Gradle将Jar文件发布到Azure DevOps工件中,但我得到了以下错误信息: 失败:生成失败,出现异常。 > 问题:在根项目“Project1”中找不到任务“publish”。 尝试:运行gradle tasks以获取可用任务的列表。使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--扫描以获得完整的洞察力。

  • 我有一个多模块项目。而且,我希望能够只做gradle发布,并发布所有模块的所有工件。其中一个问题是,当我包含插件时,我得到了名为“构建”的任务,但在根项目中找不到。 当我运行

  • 我正在尝试将jar文件(gradle项目的输出)发布到jFrog/artiFactory。当我执行或时,该项目是成功的。我还在控制台上看到下的artiFactory中浏览它,但当我去artiFactory时,什么都没有。我尝试按照jFrog/artiFactory留档,一些关于stackoverflow的问题,比如这个和这个。以下是我build.gradle的片段 我不知道我错过了什么。有人能告诉

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

  • 我有一个相当简单的要求。我有以下项目布局: 我想做的是为中的所有java文件创建一个jar 使用from: 直接执行“排除”: 这些都是我在网上找到的建议--但似乎没有一个奏效。我做错了什么。 分级版本是2.12。