我正在使用这里记录的gradle artiFactory发布插件:http://www.jfrog.com/confluence/display/RTF/Gradle1.6 Publishing artiFactory Plugin
我使用的标准配置与文档中的配置完全相同。
当我从命令行运行gradle PublishartiFactory
任务时,我得到的输出如下所示。即它部署到我正确的模块名称。
Deploying artifact: http://<my server>/artifactory/libs-snapshot-local/<my actual module name>/web/0.1-SNAPSHOT/web-0.1-SNAPSHOT.war
当我配置Jenkins使用相同的gradle构建文件运行gradle publishArtifactory任务时,我得到如下输出。也就是说,它使用Jenkins构建作为模块名。
Deploying artifact: http://artifactory01.bcinfra.net:8081/artifactory/libs-snapshot-local/<the name of the jenkins build>/web/0.1-SNAPSHOT/web-0.1-SNAPSHOT.war
关于如何防止工件插件使用Jenkins构建名称作为模块名称的任何想法?
您还可以让Gradle单独向Artifactory发布,而不需要Jenkins中的Artifactory插件。
这样,您就可以使用artifactId“您的工件名称”设置工件的名称,而无需按照Rene Groeschke的建议更改项目名称。
这是我的publish.gradle
演示了这一点:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1"
}
}
// Because this is a helper script that's sourced in from a build.gradle, we can't use the ID of external plugins
// We either use the full class name of the plugin without quotes or an init script: http://www.gradle.org/docs/current/userguide/init_scripts.html
apply plugin: org.jfrog.gradle.plugin.artifactory.ArtifactoryPublicationsPlugin
// Pack the sources into a jar
task sourceJar(type: Jar) {
from sourceSets.main.allSource; classifier = "sources"
}
// Pack the Javadoc into a jar
task javadocJar(type: Jar) {
from javadoc.outputs.files; classifier = "javadoc"
}
apply plugin: "maven-publish"
publishing {
publications {
mavenJava(MavenPublication){
from components.java
// Set the base name of the artifacts
artifactId "your artifact name"
artifact jar
artifact sourceJar
artifact javadocJar
}
}
}
artifactory {
contextUrl = "http://localhost:8081/artifactory"
publish {
// Publish these artifacts
defaults{ publications ("mavenJava") }
repository {
repoKey = "libs-release-local"
// Provide credentials like this:
//-Partifactory.publish.password=yourPassword
//-Partifactory.publish.username=yourUsername
}
}
resolve {
repository {
repoKey = "libs-release"
}
}
}
您可以在构建中使用此脚本。gradle通过应用from:“path/to/publish.gradle”并这样调用它:
./gradlew artifactoryPublish -Partifactory.publish.username="yourUsername" -Partifactory.publish.password="yourPassword"
用于上传的模块名称源自gradle项目名称。gradle项目名称的默认值取自项目文件夹名称。我怀疑在jenkins作业中,您将代码签出到名为构建作业的文件夹中。这就是为什么默认使用此文件夹名称作为项目名称的原因。
最干净的解决方案是在gradle中显式设置项目名称。
因此,您需要设置。项目根文件夹中包含项目名称的渐变文件:
rootProject.name = "web"
null 当我运行./gradlew artifactoryPublish时,它将记录: 尝试从其他生成加载插件。Gradle: 带设置。分级: 导致此错误: 我希望在运行ArtiFactoryPublish时,将publishToMavenLocal创建的所有工件发布到Artifactory。如果artifactoryPublish是错误的工具,我愿意接受它的替代方法。 如何将Gradle插件发
我有一个Jenkins的自由式构建,基于一个使用SBT的Scala项目。我正试图使用Jenkins艺术工厂插件将生成的工件发布到艺术工厂存储库,特别是托管在artifactoryonline.com.的存储库。然而,我正在努力寻找一个合理的配置。我倾向于怀疑我错过了什么,但我无计可施,我找到的留档似乎都没有详细介绍这个用例,我厌倦了浏览艺术工厂插件源代码。非常感谢任何帮助。 情况如下。我想: 使用
我试图用gradle设置工件(APK/AAR文件)构建过程,类似于我使用Maven时所使用的方法。 build.gradle文件: gradle.properties文件:
我正在尝试在 Jenkins 中配置以下工作流模式: 构建战争文件 我似乎错过了一些东西。应用程序的组件(jar 文件等)似乎在目标版本/快照目录中很好地部署到 Artifactory 中。然而,最终的WAR神器似乎并没有存储在Artifactory中,尽管Jenkins清楚地指出该神器是成功构建的。 我使用的是标准目标:全新安装。我也尝试过(没有改变):全新安装重新打包 我安装了Jenkins的
我需要通过Postman调用Jenkins作业的API。此作业需要参数(主机、详细信息和PMSP)。 Auth使用Jenkins令牌工作,并使用头内容类型:application/json。 > 我试图调用endpointhttps://jenkins_server/作业/job_name/build/api/json,将以下正文添加到请求中,但结果是没有提交任何内容,作业不运行。 我试着呼叫en
如何发布npm模块 那么我们来发布一个吧,顺便学习一下如何发布npm模块 登陆npm 发布 ➜ require-dictory git:(master) ✗ nrm use npm Registry has been set to: https://registry.npmjs.org/ ➜ require-dictory git:(master) ✗ npm login Usern