Java 格拉德尔';s Maven发布插件未将POM或正确版本发布到Maven Local
我正试图让Gradle将Java库的快照版本发布到本地Maven repo,以便:Java 格拉德尔';s Maven发布插件未将POM或正确版本发布到Maven Local,java,gradle,gradle-plugin,maven-publish,Java,Gradle,Gradle Plugin,Maven Publish,我正试图让Gradle将Java库的快照版本发布到本地Maven repo,以便: jar的版本是1.0.0.SNAPSHOT-,其中是以毫秒为单位的当前系统时间(类似于system.currentTimeInMillis());及 我将发布的jar的全名记录到STDOUT/console,包括上面的版本;及 一个格式正确的pom.xml被发布到jar旁边的Maven local,这样任何其他Gradle/Maven项目都可以在本地“下拉”并正确获取其可传递的依赖项 我迄今为止最好的尝试是: p
1.0.0.SNAPSHOT-
,其中
是以毫秒为单位的当前系统时间(类似于system.currentTimeInMillis()
);及plugins {
id 'java-library'
id 'maven-publish'
}
dependencies {
compile(
'org.hibernate:hibernate-core:5.0.12.Final'
,'com.fasterxml.jackson.core:jackson-core:2.8.10'
,'com.fasterxml.jackson.core:jackson-databind:2.8.10'
,'com.fasterxml.jackson.core:jackson-annotations:2.8.0'
)
testCompile(
'junit:junit:4.12'
)
}
repositories {
jcenter()
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
group 'com.me'
jar {
baseName = 'my-lib'
version = '1.0.0-SNAPSHOT'
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
但是,使用此设置,当我运行/gradlew publishtoavenlocal
:
- 我确实看到jar被部署到
,但没有添加pom.xml和~/.m2/repository/com/me/my lib/
版本1.0.0.SNAPSHOT
- 我甚至不知道如何/在哪里将时间戳附加到版本上
- 我甚至不知道如何/在哪里执行
来报告正在发布的jar的全名println(…)
maven publish
插件,而需要maven
插件
使用它,您可以运行gradle clean build安装
对于我来说,build.gradle文件就是这么简单
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'maven'
注意,如果您需要发布默认生成的jar之外的内容,那么您需要更改存档
配置
关于添加时间戳的#1,将版本行移到jar子句之外,并将其从
version = '1.0.0-SNAPSHOT'
到
这是使用Groovy GString(也称字符串插值-注意从单引号到双引号的变化)将当前时间(以毫秒为单位)附加到版本中
最后但并非最不重要的一点是,关于打印jar全名,请在build.gradle文件中添加以下内容
install.doLast {
println jar.archiveName
}
本质上,我们将jar配置的archiveName的println追加到安装任务(在我的答案顶部执行的任务)中(请查看是否需要其他内容)
因此,在我的build.gradle文件中,所有文件如下所示:
group 'com.boazj'
version "1.0-SNAPSHOT-${System.currentTimeMillis()}"
apply plugin: 'java'
apply plugin: 'maven'
install.doLast {
println jar.archiveName
}
group 'com.boazj'
version "1.0-SNAPSHOT-${System.currentTimeMillis()}"
apply plugin: 'java'
apply plugin: 'maven'
install.doLast {
println jar.archiveName
}