首页 文章

Gradle替代mvn安装

提问于
浏览
130

我在mvn上有两个不同的项目构建 . 我正在尝试替换为Gradle .

项目1是SDK,项目2是使用sdk(示例)

在maven的时候,它使用mvn install创建工件,将整个项目添加到本地存储库中 .

我喜欢像那样在gradle工作 . 我喜欢项目1 build.gradle需要将其作为gradle本地存储库发布,然后示例项目需要使用它 .

在maven中我们做了mvn install,它将一个项目工件添加到.m2文件夹中,但是如何在gradle中做什么,所以我可以将项目artefact添加到本地存储库中 .

我能做到的任何方式吗?

3 回答

  • 139

    sdk/build.gradle

    apply plugin: "maven"
    
    group = "foo"
    version = "1.0"
    

    example/build.gradle

    repositories {
        mavenLocal()
    }
    
    dependencies {
        compile "foo:sdk:1.0"
    }
    
    $sdk> gradle install
    
    $example> gradle build
    
  • 44

    您可能正在寻找:

    gradle publishToMavenLocal
    

    适用于:

    apply plugin: 'maven-publish'
    

    见:https://docs.gradle.org/current/userguide/publishing_maven.html

  • 8

    看看Gradle's documentation on multi-project builds .

    这是一个例子,带有一些额外的依赖关系 . 只需在根文件夹中调用 gradle install ,所有内容都将构建并存入您的本地存储库 .

    文件夹结构:

    root
    +--> build.gradle
    +--> settings.gradle
    +--> sdk
    |    +--> build.gradle
    +--> example
         +--> build.gradle
    

    根/的build.gradle:

    allprojects {
      apply plugin: 'java'
      apply plugin: 'maven'
    
      group = 'myGroup'
      version = '0.1-SNAPSHOT'
    }
    

    根/ settings.gradle:

    include 'sdk'
    include 'example'
    

    根/ SDK /的build.gradle:

    dependencies {
      // just an example external dep.
      compile group:'commons-lang', name:'commons-lang', version:'2.3'
    }
    

    根/示例/的build.gradle:

    dependencies {
      compile project(':sdk')
      compile group:'log4j', name:'log4j', version:'1.2.16'
    }
    

相关问题