有了maven,我偶尔会看到一些来自我尚未构建或包含在我的存储库中的第三方存储库的工件.
我将从maven客户端收到一条错误消息,指出无法找到工件:
未能找到org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.4.0 in
http://myrepo:80/artifactory/repo
缓存在本地存储库中,在MyRepo的更新间隔过去或强制更新之前,不会重新尝试解析 - > [帮助1]
现在,我理解这意味着什么,并且可以简单地重新运行我的命令-U
,并且通常在那里工作正常.
但是,我发现这个错误信息非常不直观,并且试图让我的同事们感到头疼.
我想知道是否有一些地方可以修改此update interval
设置.
update interval
此错误消息的客户端或服务器端的设置,被提及?我们正在使用Maven进行大型构建过程(> 100个模块).我们一直将外部依赖项存储在源代码控制中,并使用它来更新本地仓库.
但是,我们已准备好升级到可以缓存中心的本地仓库,这样我们就不必主动下载所有第三方(但我们仍然可以从本地仓库中获取).此外,我们希望从每晚构建中发布我们的内部构建工件,以便开发人员不必构建世界.
我们正在考虑Nexus和Artifactory.优先选择其中一个的原因是什么?我们应该考虑其他人吗?
我一直在公司里使用JFrog Artifactory一段时间.最近我了解了JFrog Bintray.Artifactory和Bintray有什么区别?Bintray是Artifactory的替代品吗?
我是Gradle和Artifactory的新手,我想将一个JAR文件上传到Artifactory.
这是我的build.gradle
档案:
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'maven'
apply plugin: 'artifactory-publish'
groupId = 'myGroup'
version = '1.0'
def artifactId = projectDir.name
def versionNumber = version
artifactory {
contextUrl = 'http://path.to.artifactory' // base artifactory url
publish {
repository {
repoKey = 'libs-releases' // Artifactory repository key to publish to
username = 'publisher' // publisher user name
password = '********' // publisher password
maven = true
}
}
}
artifactoryPublish {
dependsOn jar
}
Run Code Online (Sandbox Code Playgroud)
运行artifactoryPublish
任务后,构建成功,如下所示: …
我正在遵循Artifactory 1分钟的设置.我在我的localhost上运行了Artifactory,现在我正在尝试将它与Intellij/Gradle集成.
在Web应用程序artifactory的给出了一个gradle.properties
和build.gradle
文件,所以我想先从增加这些对我的IntelliJ项目.但是,我不知道把gradle.properties
文件放在哪里.
我尝试复制gradle.properties
内容(键=值对)gradle/wrapper/gradle-wrapper.properties
,遗憾的是这样做不会使build.gradle
文件中的密钥可访问.有任何想法吗?
我需要来自Artifactory中的存储库的最新工件(例如,快照).需要通过脚本将此工件复制到服务器(Linux).
我有什么选择?像Wget/SCP这样的东西?我如何获得工件的路径?
我找到了一些需要Artifactory Pro的解决方案.但我只有Artifactory,而不是Artifactory Pro.
是否有可能在没有用户界面的情况下从Artifactory下载而没有Pro-Version?有什么经历?
如果重要的话,我正在使用OpenSUSE 12.1(x86_64).
我有一个项目,昨天运行得很好,但是今天我发现这个问题:
无法解析配置“:app:debugRuntimeClasspath”的所有文件。无法解析 com.google.android.gms:play-services-location:16.+。必需者:项目:app > 项目:位置 > 无法列出 com.google.android.gms:play-services-location 的版本。> 无法从https://google.bintray.com/exoplayer/com/google/android/gms/play-services-location/maven-metadata.xml加载 Maven 元数据。> 无法获取资源“https://google.bintray.com/exoplayer/com/google/android/gms/play-services-location/maven-metadata.xml”。> 无法获取“https://google.bintray.com/exoplayer/com/google/android/gms/play-services-location/maven-metadata.xml”。从服务器收到状态代码 502:网关错误
实际上我正在使用classpath 'com.android.tools.build:gradle:4.1.0'
with distributionUrl=https://services.gradle.org/distributions/gradle-6.5-bin.zip
。
我已经关注了这个问题
并升级 'com.android.tools.build:gradle:4.1.0'
到了 classpath 'com.android.tools.build:gradle:4.2.0'
。
然后我改成distributionUrl=https://services.gradle.org/distributions/gradle-6.5-bin.zip
了,distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
但仍然出现错误。
安卓/build.gradle:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.0'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)
gradle-wrapper.properties:
distributionBase=GRADLE_USER_HOME …
Run Code Online (Sandbox Code Playgroud) 我想知道是否有任何方法要排除特定文件,这些文件位于依赖项(不是传递依赖项)中,不会被下载.
我正在将一个构建从Ant + Ivy切换到Gradle,这是在Ivy之前完成的.我问,因为我有一个依赖包含Artifactory中的许多已编译的wsdl jar我们正在拉下来,但我不想下载依赖项中的所有jar.
在常春藤,它设置如下:
这6个工件发布到Artifactory到一个目录repo/dep.location/example/7.3/jar.
<publications>
<artifact name="foo-1-0" type="jar" />
<artifact name="foo-1-0-async" type="jar" />
<artifact name="foo-1-0-xml" type="jar" />
<artifact name="bar-1-0" type="jar" />
<artifact name="bar-1-0-async" type="jar" />
<artifact name="bar-1-0-xml" type="jar" />
</publications>
Run Code Online (Sandbox Code Playgroud)
这就是我只检索六个工件中的两个.
<dependency org="dep.location" name="example" rev="7.3"
conf="compile,runtime">
<include name="foo-1-0-async"/>
<include name="foo-1-0-xml"/>
</dependency>
Run Code Online (Sandbox Code Playgroud)
目前,如果我尝试在Gradle中执行类似的操作,则会忽略排除,并下载所有六个工件.
compile (group:"dep.location", name:"example", version:"7.3")
{
exclude module:'foo-1-0-xml'
exclude module:'bar-1-0'
exclude module:'bar-1-0-async'
exclude module:'bar-1-0-xml'
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Gradle 1.8版.
我有一个ivy.xml
包含
<dependencies>
<dependency org="commons-lang" name="commons-lang" rev="2.4"/>
<dependency org="foo-bar" name="superwidgets" rev="1.5"/>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
整个superwidget内容托管在http://example.com/m2/的maven存储库中.常春藤文档提到了解析器,但它似乎假设一个常春藤存储库.如何将单个非官方maven存储库添加到我的常春藤设置中,仅供单个模块使用?(或换句话说,什么对应<repository>
于常春藤中maven的标签?)没有什么花哨的,所以我希望在我的ivy.xml中有一个单行程.
无论您何时阅读有关持续交付或持续集成的内容,建议使用工件存储库来存储工件,即使Jenkins已经为每个构建存储它们.
那么为什么建议使用工件库呢?是否有一个平滑的解决方案来处理Jenkins构建的工件,例如.使用这些工件进行部署?