我正在尝试将jar文件(gradle项目的输出)发布到jFrog/artiFactory。当我执行gradlew build
或gradlew build artifactoryPublish
时,该项目是成功的。我还在控制台上看到Build成功部署。在https://...
下的artiFactory中浏览它,但当我去artiFactory时,什么都没有。我尝试按照jFrog/artiFactory留档,一些关于stackoverflow的问题,比如这个和这个。以下是我build.gradle的片段
buildscript {
repositories {
jcenter()
}
dependencies {
//Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"
}
}
plugins {
// Apply the java-library plugin to add support for Java Library
id 'java-library'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}
apply plugin: 'eclipse'
apply plugin: 'maven-publish'
apply plugin: 'io.spring.dependency-management'
allprojects {
apply plugin: "com.jfrog.artifactory"
}
repositories {
// Use jcenter for resolving dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
}
dependencies {
// This dependency is exported to consumers, that is to say found on their compile classpath.
api 'org.apache.commons:commons-math3:3.6.1'
// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'com.google.guava:guava:29.0-jre'
// Use JUnit test framework
testImplementation 'junit:junit:4.13'
}
task sourceJar(type: Jar){
from file("build/libs/mygradle-1.0.0-sources.jar")
classifier = 'sources'
}
task certify(type: Zip, group: 'build', dependsOn: 'build') {
from ("build.gradle")
from ("libs")
from ("src/test")
from ("build/libs")
from ("${buildDir}/reports/tests")
archiveFileName = "certify-resources.zip"
destinationDirectory = file("${buildDir}/certify")
}
version = '1.0.0'
group = 'com.mypro.test' // this is the package prefix the jar will go into artifactory
artifacts {
archives sourceJar
}
publishing {
publications {
pluginJar(MavenPublication) {
groupId "${group}"
artifactId 'mygradle' // this is the package suffix the jar will go into in artifactory
version "${version}"
artifact sourceJar
from components.java
}
}
}
artifactory {
contextUrl = "${artifactory_contextUrl}" //The base Artifactory URL if not overridden by the publisher/resolver
publish {
repository {
repoKey = 'gradle-release-local'
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}
}
resolve {
repository {
repoKey = 'gradle-dev'
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}
}
}
我不知道我错过了什么。有人能告诉我我错过了什么吗?谢谢
编辑:我创建了rhel/artiFactory的新实例和一个新的gradle项目,只是为了确保问题不是来自其他地方,而是仍然
仅此信息生成信息已成功部署。在下面的Artifactory中浏览http://100.100.11.11:8081/artifactory/webapp/builds/mygradle/1675035714284执行gradlew build artifactoryPublish时显示
建造成功
JAR组件可以从组件中提取。Java语言
尝试将其添加到发布中,如下所示:
java prettyprint-override">pluginJar(MavenPublication) {
groupId "${group}"
artifactId 'my-published-project'
version "${version}"
artifact sourceJar
from components.java // <- add this line
}
默认设置中的java组件由JAR任务生成的JAR组成
有关更多信息,请参阅组件术语和Maven出版物。
编辑:另外,由于“pluginJar”不是默认的发布名称,我们应该将该发布添加到列表中(该插件默认添加mavenJava和ivyJava)。
artifactory {
contextUrl = "${artifactory_contextUrl}" //The base Artifactory URL if not overridden by the publisher/resolver
publish {
repository {
repoKey = 'gradle-release-local'
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}
defaults {
publications('pluginJar') // <- add this
}
}
...
}
我有以下多项目分级建设: 3个子项目分级文件中的每一个目前都非常简单: 以下是我想要达到的目标: 当我从父目录运行时,我希望所有三个子项目都使用0.1.5版本生成;因此,、和。但是,当前我的构建已经执行此操作... 如果客户端和共享JAR成功构建,我还希望将它们发布到我的私有Artifactory repo中。(我不希望发布服务器JAR)。 我的问题是:如何将这个片段添加到我的项目中,这样从父目录
我有一个非常基本的Gradle构建文件: 这是通过詹金斯执行的,看起来工作正常: 归档工件:[DefaultPublishArtifact_装饰模块-0.0.post0.dev6 n4c62094-py2.7:egg:egg:null] [buildinfo]属性文件位于“/tmp/buildInfo65481565498521”。财产 : artifactoryPublish 正在将生成描述符部
null 当我运行./gradlew artifactoryPublish时,它将记录: 尝试从其他生成加载插件。Gradle: 带设置。分级: 导致此错误: 我希望在运行ArtiFactoryPublish时,将publishToMavenLocal创建的所有工件发布到Artifactory。如果artifactoryPublish是错误的工具,我愿意接受它的替代方法。 如何将Gradle插件发
作为从ant迁移到gradle的短期选择,我们希望仅在ant构建的开始和结束时使用gradle,而不是从gradle内部运行ant。 基本上,我们希望使用gradle将依赖项提取到一个目录,然后运行ant构建,将所有指定的jar放置在一个目录中,然后使用gradle将工件从该目录发布到Artifactory。 这意味着gradle不会实际构建工件——而是在目录中找到它们,但我们仍然希望对它们进行版
我试图用gradle设置工件(APK/AAR文件)构建过程,类似于我使用Maven时所使用的方法。 build.gradle文件: gradle.properties文件:
我试图使用Gradle将Jar文件发布到Azure DevOps工件中,但我得到了以下错误信息: 失败:生成失败,出现异常。 > 问题:在根项目“Project1”中找不到任务“publish”。 尝试:运行gradle tasks以获取可用任务的列表。使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--扫描以获得完整的洞察力。