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'
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'
}
}
存储库块(只是一个示例)-对于本地maven repo,不需要此步骤:
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
相关性应指定为:
group:artifact:0.+
如果有任何问题,请随时提问。您提出的问题是否已得到回答?如果是,请接受答案。需要哪个插件来执行?我在尝试时得到了这样的结果:在根项目“kotti”中找不到“Task”install```