代码之家  ›  专栏  ›  技术社区  ›  hotmeatballsoup

Gradle install命令以版本和groupId在本地发布

  •  0
  • hotmeatballsoup  · 技术社区  · 6 年前

    我正试图获得一个Java/Gradle项目来构建一个共享的/不可执行的库JAR,并将其发布到我的本地Maven repo(这样我就可以将它拉到我在本地工作的其他项目中)。

    我的 build.gradle

    plugins {
        id 'java'
        id 'maven'
    }
    
    version = '0.0.1-SNAPSHOT'
    group = 'mygroup'
    rootProject.name = 'myproject'
    
    repositories {
        jcenter()
        mavenCentral()
    }
    
    dependencies {
        compile(
            'ch.qos.logback:logback-classic:1.2.3'
            ,'org.apache.commons:commons-lang3:3.7'
        )
    
        testCompile(
            'junit:junit:4.12'
            ,'org.mockito:mockito-core:2.23.0'
        )
    }
    
    test {
        // Trick to run tests in parallel with as much concurrency as possible.
        maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
    }
    
    jar {
        baseName = rootProject.name
    }
    

    以及我如何调用它:

    ./gradlew clean build install
    

    在我的文件系统上,我看到一个 /home/.m2/repository/myproject/unspecified/ 目录( myrpoject

    • myproject.jar
    • myproject.pom

    我是 ! 我只是想弄清楚如何替换 unspecified 具有我的配置值的版本号( 0.0.1-SNAPSHOT )以及如何将安装目录更改为 /home/.m2/repository/mygroup/myproject/unspecified/ mygroup 添加!)?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Opal    6 年前

    您的文件应该是这样的:

    gradle.properties公司

    version=0.0.1-SNAPSHOT
    group=mygroup
    

    设置.gradle

    rootProject.name = 'myproject'
    

    构建.gradle

    plugins {
        id 'java'
        id 'maven'
    }
    
    repositories {
        jcenter()
        mavenCentral()
    }
    
    dependencies {
        compile(
            'ch.qos.logback:logback-classic:1.2.3'
            ,'org.apache.commons:commons-lang3:3.7'
        )
    
        testCompile(
            'junit:junit:4.12'
            ,'org.mockito:mockito-core:2.23.0'
        )
    }
    
    test {
        maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
    }
    
    jar {
        baseName = rootProject.name
    }