我有一个问题,通过使用Gradle的artifactory解决依赖关系。但是我可以使用maven解决这种依赖关系,所以我不确定我做错了什么。
maven构建文件是:
<dependencies>
<dependency>
<groupId>org.geoserver</groupId>
<artifactId>geoserver</artifactId>
<version>2.5.1</version>
<type>war</type>
</dependency>
</dependencies>
<repositories>
<repository>
<name>libs-releases</name>
<url>http://<artifactory-host>/artifactory/libs-releases</url>
</repository>
</repositories>
我可以确认maven将解决依赖关系:
$ mvn dependency:resolve
Downloading: http://<artifactory-host>/artifactory/libs-releases/org/geoserver/geoserver/2.5.1/geoserver-2.5.1.pom
Downloading: http://<artifactory-host>/artifactory/libs-releases/org/geoserver/web/2.5.1/web-2.5.1.pom
Downloading: http://<artifactory-host>/artifactory/libs-releases/org/geoserver/geoserver/2.5.1/geoserver-2.5.1.war
[INFO] The following files have been resolved:
[INFO] org.geoserver:geoserver:war:2.5.1:compile
我的gradle构建脚本是:
repositories {
mavenCentral()
maven { url 'http://<artifactory-host>/artifactory/libs-releases' }
}
dependencies {
compile 'org.geoserver:geoserver:2.5.1@war'
}
$ gradle dependencies
:dependencies
compile - Compile classpath for source set 'main'.
\--- org.geoserver:geoserver:2.5.1 FAILED
[DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Sending request: HEAD /artifactory/libs-releases/org/geoserver/geoserver/2.5.1/geoserver-2.5.1.pom HTTP/1.1
[DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Receiving response: HTTP/1.1 200 OK
$ wget http://<artifactory-host>/artifactory/libs-releases/org/geoserver/geoserver/2.5.1/geoserver-2.5.1.pom
`geoserver-2.5.1.pom' saved [32283/32283]
$ wget http://<artifactory-host>/artifactory/libs-releases/org/geoserver/geoserver/2.5.1/geoserver-2.5.1.war
`geoserver-2.5.1.war' saved [60164745/60164745]
编辑#2我在使用maven构建时看到以下警告:
[WARNING] The POM for org.geoserver:geoserver:war:2.5.1 is invalid, transitive dependencies (if any) will not be available: 2 problems were encountered while building the effective model for org.geoserver:geoserver:2.5.1
[ERROR] Invalid packaging for parent POM org.geoserver:geoserver:2.5.1, must be "pom" but is "war" @
[FATAL] The parents form a cycle: org.geoserver:geoserver:2.5.1 -> org.geoserver:web:2.5.1 -> org.geoserver:geoserver:2.5.1 @
查看GeoServer2.5.1源代码:
org.geoserver:geoserver
(WAR)具有父级org.geoserver:web
(POM)org.geoserver:Web
(POM)具有父org.geoserver:geoserver
(WAR)Downloaded: http://<artifactory-host>/artifactory/libs-releases/org/geoserver/geoserver/2.5.1/geoserver-2.5.1.war (58755 KB at 8601.2 KB/sec)
也许gradle在这个问题上更严格?
编辑#3我更改了依赖项,以排除org.geoserver:geoserver
上的可传递依赖项:
dependencies {
compile('org.geoserver:geoserver:2.5.1@war') {
transitive = false
}
...
但是当我运行$gradle dependencies
时,依赖性仍然没有解决。
$ gradle bundleArtifacts
:bundleArtifacts
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all dependencies for configuration ':compile'.
> Could not resolve org.geoserver:geoserver:2.5.1.
Required by:
<my-project>:1.0-SNAPSHOT
> Could not resolve org.geoserver:geoserver:2.5.1.
> Could not parse POM http://<artifactory-host>/artifactory/libs-releases/org/geoserver/geoserver/2.5.1/geoserver-2.5.1.pom
> Could not resolve org.geoserver:web:2.5.1.
> Could not parse POM http://<artifactory-host>/artifactory/libs-releases/org/geoserver/web/2.5.1/web-2.5.1.pom
> Could not resolve org.geoserver:geoserver:2.5.1.
...
看起来您使用的是导致此问题的修改过的pom文件。
原始org.geoserver:geoserver模块的包类型是pom,它没有父包。这是整个geoserver项目的父pom,不应用作依赖项。
org.geoserver:web也属于pom类型,并充当所有web相关模块的父模块。
查看geoserver Artifactory服务器,我找不到任何名为GeoServer-X.X.X.WAR
的构件。似乎有人部署了geoserver的web archive(war)分发版,并修改了org.geoserver:geoserver
的原始pom文件,以便解决该问题。
如果您想继续解决这个问题,我建议为它创建一个新的专用.pom文件,该文件不会与geoserver冲突(使用新的groupID/artifactid)。
我有两个gradle项目。A和B。A依赖于B。我还将B作为一组工件上传到artifactory本地服务器。我用了maven publish。然后我试着用B作为A中的依赖项。我试着用它作为maven依赖项,所以我写道 但是,它总是尝试从repo1下载JAR。我想我误解了什么。首先,我不太明白为什么我需要maven,我也不明白我的工件发布是否等于maven安装。如何使用B作为A的依赖项?我的看法是:在
我想下载使用ivy的工件:解决,但使用使用[conf]属性的模式。所以我在IvyS中定义了以下内容ettings.xml 注意这个模式 现在可以很好地解决依赖关系,但只为配置创建了一个文件夹:默认。没有为ConfGroup1创建文件夹 另外,我知道这可以通过使用ivy:retrieve实现,但我不想使用它,因为它将涉及将工件从ivy缓存复制到ivy:resolve之后的另一个地方,我有价值数十亿字
我对ivy没有解析我的一些依赖关系有问题。以下是我如何重现这个问题的: 我在eclipse中有一个空的java项目。我已经在我的项目中添加了ivy.xml: 这工作正常,ivy能够解决和下载口水。 如果我将修订版更改为6.3.0.Final(http://mvnrepository.com/artifact/org.drools/drools-core/6.3.0.Final),它将不起作用,我看
谁能告诉我Maven中的依赖项Hamcrest有什么问题吗?这是一个遗憾,但我不能在这里附上截图。 当我试图更新Maven索引时,什么也没有发生。
我试图修改我们现有的CDI扩展,它创建自己的代理bean。现在只有一个为每个服务创建的代理。服务有类似于应用程序范围的东西,所以服务总是只有一个实例。 我想要完成的是为每个注入点创建一个代理bean。我需要它们来存储特定于给定注射点的一些信息。如果同一个服务有更多的注入点,那么将有更多的代理bean,但它们后面仍然有一个服务实例。但是,当我以这种方式更改行为时,Weld会抱怨不明确的依赖关系,因为
当我尝试运行mvn sonar时:sonar target maven无法运行sonar,以下是mvn输出的相关部分: org.apache.maven.shared.dependency.tree.依赖 似乎出于某种原因,maven没有下载所需的依赖项。 我配置了一个包含jar的本地nexus,但是不管我的设置中是否有激活的配置文件,我都会得到相同的结果。xml与否。 我应该如何配置maven,