我有以下多项目分级建设:
myapp/
myapp-client/
build.gradle
src/** (omitted for brevity)
myapp-shared/
build.gradle
src/** (omitted for brevity)
myapp-server
build.gradle
src/** (omitted for brevity)
build.gradle
settings.gradle
subprojects {
apply plugin: 'groovy'
sourceCompatibility = '1.7'
targetCompatibility = '1.7'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
repositories {
mavenCentral()
maven {
// My local/private Artifactory
url "http://localhost:8081/artifactory/myapp-snapshots"
}
}
dependencies {
compile (
'org.codehaus.groovy:groovy-all:2.3.7'
)
}
}
3个子项目分级文件中的每一个目前都非常简单:
dependencies {
compile (
'org.apache.commons:commons-lang3:3.3.2'
)
}
以下是我想要达到的目标:
myapp
目录运行gradle clean build-pversion=0.1.5
时,我希望所有三个子项目都使用0.1.5版本生成;因此,myapp-client-0.1.5.jar
、myapp-shared-0.1.5.jar
和myapp-server-0.1.5.jar
。但是,当前我的构建已经执行此操作...buildscript {
repositories {
maven {
url 'http://localhost:8081/artifactory/plugins-release'
credentials {
username = "admin"
password = "12345"
}
name = "maven-main-cache"
}
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1"
}
}
apply plugin: 'maven-publish'
apply plugin: "com.jfrog.artifactory"
repositories {
add buildscript.repositories.getByName("maven-main-cache")
maven {
url "http://localhost:8081/artifactory/myapp-snapshots"
}
}
artifactory {
contextUrl = "http://localhost:8081/artifactory"
publish {
repository {
repoKey = 'myapp-snapshots'
username = "admin"
password = "12345"
maven = true
}
defaults {
publications ('mavenJava')
}
}
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
我的问题是:如何将这个片段添加到我的项目中,这样从父目录运行gradle clean build
成功后,就会生成发布到ArtiFactory的客户端和共享JAR?
虽然不是很理想,但如果不可能一下子做到这一切,我愿意把出版作为一个单独的第二步。有什么想法吗?
使用ArtiFactory
插件是正确的方法。您需要将其应用于AllProjects
,并使用ArtifactoryPublish.skip=true
禁用顶级项目上的部署。您可以在这里找到一个与您的项目非常相似的完全工作的示例。
默认情况下,build
不依赖于artifactorypublish
,因此需要运行gradle build artifactorypublish
来上载JAR。原因是您可能想要运行大量的构建,直到您决定上传一些东西。您可以通过将build
配置为依赖于ArtifactoryPublish
来建立依赖关系:
build(dependsOn: 'artifactoryPublish')
我有一个非常基本的Gradle构建文件: 这是通过詹金斯执行的,看起来工作正常: 归档工件:[DefaultPublishArtifact_装饰模块-0.0.post0.dev6 n4c62094-py2.7:egg:egg:null] [buildinfo]属性文件位于“/tmp/buildInfo65481565498521”。财产 : artifactoryPublish 正在将生成描述符部
我有一个多项目的gradle构建,其中一个子项目是应用Artifactory插件(版本4.2.0),并配置contextUrl和resolve repoKey。 它设置一个简单的配置和依赖项,然后有一个复制任务来检索依赖项作为zip文件并将其解压缩到目录中。 然而,当复制任务运行时,我得到下面的错误。我做错了什么?这是Artifactory插件或gradle的问题,还是。。。? 问题似乎与该项目是
null 当我运行./gradlew artifactoryPublish时,它将记录: 尝试从其他生成加载插件。Gradle: 带设置。分级: 导致此错误: 我希望在运行ArtiFactoryPublish时,将publishToMavenLocal创建的所有工件发布到Artifactory。如果artifactoryPublish是错误的工具,我愿意接受它的替代方法。 如何将Gradle插件发
我以一个新的gradle用户的身份创建gradle版本,但我过去曾与maven合作过。 我试图重现maven发布插件的动作: 将分支版本更改为发行号(在svn提交) 如您所见,我正在使用: Nexus OSS作为版本控制库 SVN作为scm Gradle(2.8) 我正试图通过这两个插件实现我的目标: > 将分支版本更改为发行号(在svn提交) 创建标签(位于svn) 将分支版本更改为新快照编号(
我正在尝试将jar文件(gradle项目的输出)发布到jFrog/artiFactory。当我执行或时,该项目是成功的。我还在控制台上看到下的artiFactory中浏览它,但当我去artiFactory时,什么都没有。我尝试按照jFrog/artiFactory留档,一些关于stackoverflow的问题,比如这个和这个。以下是我build.gradle的片段 我不知道我错过了什么。有人能告诉
我试图在Jenkins管道中使用JenkinsArtiFactory Plugin-Release Management功能,但我在文档中没有看到任何管道步骤(https://www.jfrog.com/confluence/display/RTF/Declarative管道语法)。 我正在寻找管道步骤,无论是脚本化/声明性步骤"阶段Maven发布构建"。PFA的截图,可以通过正常的maven工作