6

次のライブラリを依存関係として定義する必要があります。

URL: http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/

ユーザー: testmx

パス: testmx@testmx

グループ ID: testmx

アーティファクト ID: testmxcommons

バージョン: 1.0.0-SNAPSHOT

そこで、次の project/Build.scala を定義しました

import sbt._
import Keys._
import PlayProject._

object ApplicationBuild extends Build {

    val appName         = "testmxproject"
    val appVersion      = "1.0-SNAPSHOT"

    val appDependencies = Seq(
      "mysql" % "mysql-connector-java" % "5.1.18",
      "testmx" % "testmxcommons" % "1.0.0-SNAPSHOT"
    )

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
      credentials += ("testmx public", "deploy.cloud.testmx.com:8081", "testmx", "testmx@testmx"),
      resolvers += "testmx public" at "http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/"
    )

}

次のエラーが表示されます。

[warn]  module not found: testmx#testmxcommons;1.0.0-SNAPSHOT

[warn] ==== testmx public: tried
[warn]   http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/testmx/textmxcommons/1.0.0-SNAPSHOT/textmxcommons-1.0.0-SNAPSHOT.pom

いくつかの代替案を試しましたが、同じエラーが発生します...

この記事とこのSOの質問を確認しました

また、ここここで説明されているように、ユーザーとパスワードを外部ファイルに保存しようとしました。

何か案が?

-- 明確にするために編集 --

私が使用している公開リポジトリではないため、実際の URL を変更しました...実際の URL はそこにあり、sbt が見つけようとしている pom は存在します...

ps: ところで.. sbt scaladocs はどこにあるのですか???

4

2 に答える 2

11

パブリッシュ先のリポジトリを SBT に指定する必要があります。

publishTo := Some("testmx public" at "http://deploy.cloud.testmx.com:8081/nexus")

さらに、資格情報をビルド ファイルに保持したくない場合は、次の行を追加して、資格情報をローカルで取得するように指示できます。

credentials += Credentials(Path.userHome / ".ivy2" / ".credentials"),

そして、ディレクトリに次のようなファイルを~/.ivy2作成します。.credentials

realm=Sonatype Nexus Repository Manager
host=deploy.cloud.testmx.com
user=testmx
password=testmx@testmx

詳細については、 https://github.com/harrah/xsbt/wiki/Publishingを参照してください。

于 2012-06-06T02:55:21.420 に答える
6

クレデンシャルを渡すときに2つの問題がありました。

1つ目は、間違ったレルムを通過していたことです。(これについてはAlex Varjuに感謝します)

ログに記録しようとするときにサーバーが送信しているのと同じレルムを渡す必要があります(クロムでctrl-shift-IまたはF12を押して、ネットワークにアクセスして確認してください)

2番目の問題は、ポート番号を渡していたことですが、sbtはそれを好まないようです...

だから、結局私はこのようにそれをしました、そしてそれはうまくいきます:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
  credentials += ("Sonatype Nexus Repository Manager", "deploy.cloud.testmx.com", "testmx", "testmx@testmx"),
  resolvers += "testmx public" at "http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/"
)

予想どおり、別のファイルでクレデンシャルを設定すると、同じ変更を加えても問題なく機能しました...

あなたの答えをありがとう

于 2012-06-06T06:26:41.057 に答える