这是我的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
的最低限度代码是什么?SNAPSHOT
版本?SNAPSHOT
?像compile ':dummy:LATEST'
?答案 0 :(得分:7)
Here我已为您准备了示例项目,这是build.gradle
配置的最低要求。
您需要添加apply plugin: 'maven'
并设置group = 'somegroup'
。 maven
插件提供install
任务,并且需要group
才能在maven存储库中安装工件。
然后运行gradle clean install
。如果没有通过任何版本,它将评估为未指定,如果未配置artifactId
,它将评估为project.name
。 Here您可以找到如何配置其他maven属性。
为本地开发安装快照绝对是个好主意。
如果您希望其他项目始终选择最新版本的SNAPSHOT您需要将以下代码添加到build.gradle
脚本中。它保证解析到最新版本。
configurations.all {
resolutionStrategy {
cacheChangingModulesFor 0, 'seconds'
}
}
首先您需要将快照仓库添加到repositories
块(只是一个示例) - 使用本地maven仓库,不需要此步骤:
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
依赖关系应指定为:
group:artifact:0.+
如有任何问题,请随时提出。
答案 1 :(得分:3)
1)你只需要做一个
gradle install
2)指定您喜欢的任何版本 - SNAPSHOT版本对于主动开发有意义。一旦您认为您的库不太可能发生变化,您一定应该选择非快照版本。
3)您必须为本地仓库中的版本指定依赖关系,就像第三方库一样。