car*_*ing 6 nexus gradle maven maven-metadata
我有以下build.gradle脚本:
apply plugin: 'java'
apply plugin: 'maven'
compileJava {
targetCompatibility = "1.8"
sourceCompatibility = "1.8"
options.encoding = 'UTF-8'
}
ext.username = System.getProperty('username') != null ? System.getProperty('username') : mavenUser
ext.password = System.getProperty('password') != null ? System.getProperty('password') : mavenPassword
description = "Example project that shows how to use Gradle to build and deploy artifacts to Nexus"
configurations {
deployerJars
}
repositories {
maven { url "http://nexus:8081/nexus/content/groups/my-group/" }
mavenCentral()
}
dependencies {
deployerJars "org.apache.maven.wagon:wagon-http:2.2"
testCompile group: 'junit', name: 'junit', version: '4.11'
}
// Gradle build Configuration to publish artifacts to maven artifact manager
uploadArchives {
repositories.mavenDeployer {
configuration = configurations.deployerJars
repository(url: "http://nexus:8081/nexus/content/repositories/my-snapshots/") {
authentication(userName: username, password: password)
}
pom.groupId = "com.foo.bar"
pom.artifactId = "my-gradle-app"
pom.version = "1.0-SNAPSHOT"
}
}
// ------------------------------------------------------
// EXAMPLE: custom tasks for creating source/javadoc jars
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
// add javadoc/source jar tasks as artifacts
artifacts {
archives sourcesJar
archives javadocJar
}
Run Code Online (Sandbox Code Playgroud)
当我执行以下命令时,构建和部署成功:
$ gradle clean upload -Dusername=myUsername -Dpassword=myPassword
Run Code Online (Sandbox Code Playgroud)
生成的maven-metadata.xml文件如下所示:
<metadata>
<groupId>com.foo.bar</groupId>
<artifactId>my-gradle-app</artifactId>
<version>1.0-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20170906.143113</timestamp>
<buildNumber>1</buildNumber>
</snapshot>
<lastUpdated>20170906143113</lastUpdated>
</versioning>
</metadata>
Run Code Online (Sandbox Code Playgroud)
这些是实际部署到 Nexus 的文件:
my-gradle-app-1.0-20170906.143113-1-javadoc.jar
my-gradle-app-1.0-20170906.143113-1-javadoc.jar.md5
my-gradle-app-1.0-20170906.143113-1-javadoc.jar.sha1
my-gradle-app-1.0-20170906.143113-1-sources.jar
my-gradle-app-1.0-20170906.143113-1-sources.jar.md5
my-gradle-app-1.0-20170906.143113-1-sources.jar.sha1
my-gradle-app-1.0-20170906.143113-1.jar
my-gradle-app-1.0-20170906.143113-1.jar.md5
my-gradle-app-1.0-20170906.143113-1.jar.sha1
my-gradle-app-1.0-20170906.143113-1.pom
my-gradle-app-1.0-20170906.143113-1.pom.md5
my-gradle-app-1.0-20170906.143113-1.pom.sha1
Run Code Online (Sandbox Code Playgroud)
来自 Maven 背景,我希望在maven-metadata.xml文件中看到以下内容:
<metadata>
<groupId>com.foo.bar</groupId>
<artifactId>my-gradle-app</artifactId>
<version>1.0-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20170906.143113</timestamp>
<buildNumber>1</buildNumber>
</snapshot>
<lastUpdated>20170906143113</lastUpdated>
</versioning>
<snapshotVersions>
<snapshotVersion>
<classifier>javadoc</classifier>
<extension>jar</extension>
<value>1.0-20170906.143113-1</value>
<updated>20170906140847</updated>
</snapshotVersion>
<snapshotVersion>
<classifier>sources</classifier>
<extension>jar</extension>
<value>1.0-20170906.143113-1</value>
<updated>20170906140847</updated>
</snapshotVersion>
<snapshotVersion>
<extension>jar</extension>
<value>1.0-20170906.143113-1</value>
<updated>20170906140844</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>1.0-20170906.143113-1</value>
<updated>20170906140847</updated>
</snapshotVersion>
</snapshotVersions>
</metadata>
Run Code Online (Sandbox Code Playgroud)
如果我重新运行部署,我会期望maven-metadata.xml文件不仅包含<snapshot/>'s<timestamp/>和<buildNumber>要更新,而且还<snapshotVersion/>附加新条目。相反,发生的情况是,整个文件都重新生成,并且只有一个<snapshotVersion/>且只有<snapshot/>'s<timestamp/>和<buildNumber>正确更新。
我在这里缺少什么?为什么没有maven-metadata.xml正确生产?是否有我缺少的插件?这是 Gradle 中的错误吗?
此外,我在 Gradle 问题跟踪器中提出了问题#2882,希望从我们这边弄清楚这是一个错误、不完整的功能还是错误配置。
我也试过这个maven-publish插件,但是生成的maven-metadata.xml文件还是一样。
| 归档时间: |
|
| 查看次数: |
1589 次 |
| 最近记录: |