Maven 本地发布渐变快照

Maven 本地发布渐变快照,maven,gradle,publishing,snapshot,Maven,Gradle,Publishing,Snapshot,这是我的dummy项目的build.gradle文件: apply plugin: 'groovy' repositories { mavenLocal() mavenCentral() } dependencies { compile 'org.codehaus.groovy:groovy-all:2.3.3' compile 'org.slf4j:jcl-over-slf4j:1.7.7' testCompile 'junit:junit:4.1

这是我的
dummy
项目的
build.gradle
文件:

apply plugin: 'groovy'

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.3.3'
    compile 'org.slf4j:jcl-over-slf4j:1.7.7'

    testCompile 'junit:junit:4.11'
    testCompile 'org.mockito:mockito-all:1.10.8'
}

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

artifacts {
    archives sourcesJar
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}
当我运行
gradle clean build-Pversion=1.2.3
时,这会打包所有代码,并为我创建一个
build/libs/dummy-1.2.3.jar

我想知道所需的Gradle代码的绝对最小数量,以便将我的“虚拟”JAR发布到本地Maven缓存(
mavenLocal()
)。此外,这如何与版本控制一起工作?我总是可以为虚拟JAR指定一个具体的版本,但是当我在本地发布时,发布
SNAPSHOT
版本更有意义(至少对我来说)。我可以只运行
gradle clean build-Pversion=0.1.SNAPSHOT
,但我担心的是其他本地项目是否会获取最新的
SNAPSHOT
版本

所以再次强调:

  • 本地发布
    dummy
    的最低代码是多少
  • 在本地发布时,是否可以指定其他项目总是获取其最新副本的
    快照
    版本
  • 其他本地项目需要使用什么来获取此快照?类似于
    编译:dummy:LATEST'
  • 1) 你只需要做一个测试

    gradle install
    
    2) 指定您喜欢的任何版本-快照版本对于活动开发很有意义。一旦您认为您的库不太可能更改,您就应该选择非快照版本

    configurations.all {
       resolutionStrategy {
         cacheChangingModulesFor 0, 'seconds'
       }
    }
    
    3) 与第三方库一样,您必须指定对本地repo中版本的依赖关系。

    我已经为您准备了示例项目,这是
    build.gradle
    配置的最低要求

  • 您需要添加
    apply插件:“maven”
    并设置
    group='somegroup'
    maven
    插件提供了
    install
    任务,并且需要
    group
    才能在maven存储库中安装工件

    然后运行
    gradle clean install
    。如果没有传递版本,它将计算为未指定,如果没有配置
    artifactId
    ,它将计算为
    project.name
    。您可以找到如何配置其他maven属性

    为本地开发安装snapshot绝对是个好主意

  • 如果希望其他项目始终选择快照的最新版本,则需要将以下代码段添加到
    build.gradle
    脚本中。它保证解析为最新版本

    configurations.all {
       resolutionStrategy {
         cacheChangingModulesFor 0, 'seconds'
       }
    }
    
  • 首先,您需要将快照repo添加到
    存储库
    块(只是一个示例)-对于本地maven repo,不需要此步骤:

    maven {
        url 'https://oss.sonatype.org/content/repositories/snapshots'
    }
    
    相关性应指定为:

    group:artifact:0.+
    

  • 如果有任何问题,请随时提问。

    您提出的问题是否已得到回答?如果是,请接受答案。需要哪个插件来执行?我在尝试时得到了这样的结果:在根项目“kotti”中找不到“Task”install```