1

我正在使用Java编写Play 2.3.2应用程序。为什么激活者无法解析本地maven资源库中的自定义依赖项?

我已经分叉邮件黑猩猩java api包装存储库,我已经扩展它,并更改模块版本2.0.1.2-beta

我已经将我的模块安装到本地maven存储库中。于是,我试着从我的播放应用程序的构建提到它,但在游戏外壳(activator update)的update命令给我下面的错误:

[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: com.ecwid#ecwid-mailchimp;2.0.1.2-beta: several problems occurred while resolving dependency: com.ecwid#ecwid-mailchimp;2.0.1.2-beta {compile=[default(compile)]}: 
[warn] URI has an authority component 
[warn] URI has an authority component 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
sbt.ResolveException: unresolved dependency: com.ecwid#ecwid-mailchimp;2.0.1.2-beta: several problems occurred while resolving dependency: com.ecwid#ecwid-mailchimp;2.0.1.2-beta {compile=[default(compile)]}: 
    URI has an authority component 
    URI has an authority component 
    at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:217) 
    at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:126) 
    at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:125) 
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:115) 
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:115) 

... 

[error] (*:update) sbt.ResolveException: unresolved dependency: com.ecwid#ecwid-mailchimp;2.0.1.2-beta: several problems occurred while resolving dependency: com.ecwid#ecwid-mailchimp;2.0.1.2-beta {compile=[default(compile)]}: 
[error]  URI has an authority component 
[error]  URI has an authority component 

这是build.sbt文件我rilevant的一部分:

resolvers ++= Seq(
    Resolver.sonatypeRepo("snapshots"), 
    "Local Play Repository" at "file://$HOME/.ivy2/local", 
    "Local Maven Repository" at "file://$HOME/.m2/repository" 
) 

libraryDependencies ++= Seq(
    "com.ecwid" % "ecwid-mailchimp" % "2.0.1.2-beta" 
) 

怎么回事?

回答

1

当你面对错误SBT告诉你运行last *:update看到完整的输出:

[trace] Stack trace suppressed: run last *:update for the full output. 

在再现的情况下,我发现last *:update非常有用,因为它给我看:

[debug] CLIENT ERROR: Not Found url=https://oss.sonatype.org/content/repositories/snapshots/com/ecwid/ecwid-mailchimp/2.0.1.2-beta/ecwid-mailchimp-2.0.1.2-beta.pom 
[debug]  sonatype-snapshots: no ivy file found for com.ecwid#ecwid-mailchimp;2.0.1.2-beta 
[debug]   tried file://$HOME/.ivy2/local/com/ecwid/ecwid-mailchimp/2.0.1.2-beta/ecwid-mailchimp-2.0.1.2-beta.pom 
[debug] problem occurred while resolving dependency: com.ecwid#ecwid-mailchimp;2.0.1.2-beta {compile=[default(compile)]} with Local Play Repository: java.lang.IllegalArgumentException: URI has an authority component 
[debug]  at java.io.File.<init>(File.java:423) 
[debug]  at sbt.IO$.toFile(IO.scala:76) 
[debug]  at sbt.ConvertResolver$LocalIfFileRepo.getResource(ConvertResolver.scala:222) 

我不认为$HOME已经解决,因此问题。

删除"Local Play Repository" at "file://$HOME/.ivy2/local"并重新开始。它是默认包含的,你不需要明确地在构建中。

你还是使用Path.userHome.absolutePath$HOMEResolvers描述:

SBT可以搜索你的本地仓库,如果你将它添加为 库:

resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository" 

,或者为了方便:

resolvers += Resolver.mavenLocal 

用下面build.sbt

resolvers ++= Seq(
    Resolver.sonatypeRepo("snapshots"), 
    Resolver.mavenLocal 
) 

libraryDependencies ++= Seq(
    "com.ecwid" % "ecwid-mailchimp" % "2.0.1.2-beta" 
) 

update被停滞无法解决com.ecwid#ecwid-mailchimp;2.0.1.2-beta那是另外一个问题:

> update 
[info] Updating {file:/Users/jacek/sandbox/uri-authority/}uri-authority... 
[info] Resolving com.ecwid#ecwid-mailchimp;2.0.1.2-beta ... 
[warn] module not found: com.ecwid#ecwid-mailchimp;2.0.1.2-beta 
[warn] ==== local: tried 
[warn] /Users/jacek/.ivy2/local/com.ecwid/ecwid-mailchimp/2.0.1.2-beta/ivys/ivy.xml 
[warn] ==== public: tried 
[warn] https://repo1.maven.org/maven2/com/ecwid/ecwid-mailchimp/2.0.1.2-beta/ecwid-mailchimp-2.0.1.2-beta.pom 
[warn] ==== sonatype-snapshots: tried 
[warn] https://oss.sonatype.org/content/repositories/snapshots/com/ecwid/ecwid-mailchimp/2.0.1.2-beta/ecwid-mailchimp-2.0.1.2-beta.pom 
[warn] ==== Maven2 Local: tried 
[warn] file:/Users/jacek/.m2/repository/com/ecwid/ecwid-mailchimp/2.0.1.2-beta/ecwid-mailchimp-2.0.1.2-beta.pom 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: com.ecwid#ecwid-mailchimp;2.0.1.2-beta: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] 
[warn] Note: Unresolved dependencies path: 
[warn]  com.ecwid:ecwid-mailchimp:2.0.1.2-beta (/Users/jacek/sandbox/uri-authority/build.sbt#L7-10) 
[warn]  +- default:uri-authority_2.10:0.1-SNAPSHOT 
[trace] Stack trace suppressed: run last *:update for the full output. 
[error] (*:update) sbt.ResolveException: unresolved dependency: com.ecwid#ecwid-mailchimp;2.0.1.2-beta: not found 
[error] Total time: 1 s, completed Sep 30, 2014 11:39:21 PM 
相关问题