我怎么SBT使用本地的maven代理库

我怎么SBT使用本地的maven代理库,第1张

1. OK(确定),由马克・哈拉帮助SBT邮件列表上,我有问题的解答。 我生成类现在看起来如下(其他回购):import sbt._

//By extending DefaultWebProject, we get Jetty support

class OurApplication(info: ProjectInfo) extends DefaultWebProject(info) {

// This skips adding the default repositories and only uses the ones you added

// explicitly. --Mark Harrah

override def repositories = Set("OurNexus" at " CodeGo.net

override def ivyRepositories = Seq(Resolver.defaultLocal(None)) ++ repositories

/* Squeryl */

val squeryl = "org.squeryl" % "squeryl_2.8.0.RC3" % "0.9.4beta5"

/* DATE4J */

val date4j = "hirondelle.date4j" % "date4j" % "1.0" from " CodeGo.net

// etc

}

现在,如果我从我的机器的删除Squeryl树.ivy2/cache目录中,SBT试图从树上抓住它与相应的URL。问题解决了!

2. 所有你需要的是定义一个属性文件sbt.boot.properties这将允许您: 重新定义ivy缓存的位置(我需要,这将是我们的漫游Windows配置文件,这是strict限制在我们的商店磁盘空间的其他部分。请参见问题74) 定义你想要的任何其他的Maven回购 C:\\家庭用品\\ APPS \\ SBT-0.74 \\ sbt.boot.properties [阶] 版本:2.7.7 #分类:来源 CodeGo.net,则javadoc [应用] 组织结构:org.scala-tools.sbt SBT 版本:阅读(sbt.version) 等级:sbt.xMain 成分:xsbti 跨版本:真 分类:来源,则javadoc [仓库] 当地 我的[机构] / [模块] / [修订版] / [类型] S / [神器]。(-[分类])[转] Maven的本地 #SBT-DB:[组织] / [模块] / [修订版] / [类型] S / [神器](-[分类])[转] #Maven的中央 #scala-工具-版本 #scala-工具-快照 [引导] 目录:项目/开机 特性:项目/ build.properties中 提示创建:项目不存在,创建新项目吗? 提示填写:真实 快速选项:真 [日志] 级别:调试 [APP-性质] 项目。快速=套(测试),新=提示(补=提示( 新=提示(组织)[org.vonc] project.version:快速=套(1.0),新=提示(版)[1.0]补=提示(版)[1.0] build.scala.versions:快速=套(2.8.0.RC2),新=提示(scala版)[2.8.0.RC2]补=提示(scala版)[2.8.0.RC2] sbt.version:快速=套(0.7.4),新=提示(SBT版)[0.7.4]补=提示(SBT版)[0.7.4] project.scratch:快速=套(真) project.initialize:快速=集(真),新=集(真) [ivy] 高速缓存目录:C:\\家庭用品\\工程\\ ivy2 \\缓存 注:本sbt.boot.properties文件是从启发: 对在SBT项目的“广义启动器”页面。 一个内发现sbt-0.74本身! 我有任何外部Maven仓库的定义,并增加了一个参考我自己的Maven回购。 该launch器可在增加优先顺序的下列方式之一进行配置: 更换/sbt/sbt.boot.properties在文件jar。 把配置文件sbt.boot.properties在类路径中。把它在classpath根无/sbt前缀。 指定的行的另一种结构的位置。这可以这样做: 要么指定位置的系统属性sbt.boot.properties或作为优先到'前缀launch@'。 系统属性具有较低的优先级。 相对路径的解析是: 优先个试图对当前的工作目录, 然后针对目录, 然后对包含该launch器的jar的目录。 会产生一个错误,如果没有这些尝试 定义一个sbt.bat包装(以确保指定您的sbt.boot.properties),如:C:\HOMEWARE>more C:\HOMEWARE\bin\sbt.BAT

@echo off

set t=%~dp0

set adp0=%t:C:\="%"

set SBT_DIR=%adp0%..\apps\sbt-0.74

dir C:\%SBT_DIR%\sbt-launch-0.7.4.jar

# if needed, add your proxy settings

set PROXY_OPTIONS=-Dhttp.proxyHost=my.proxy -Dhttp.proxyPort=80xx -Dhttp.proxyUser=auser -Dhttp.proxyPassword=yyyy

set JAVA_OPTIONS=-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xmx512M -cp C:\HOMEWARE\apps\sbt-0.74\sbt-launch-0.7.4

set SBT_BOOT_PROPERTIES=-Dsbt.boot.properties="sbt.boot.properties"

cmd /C C:\HOMEWARE\apps\jdk4eclipse\bin\java.exe %PROXY_OPTIONS% %JAVA_OPTIONS% %SBT_BOOT_PROPERTIES% -jar C:\HOMEWARE\apps\sbt-0.74\sbt-launch-0.7.4.jar %*

你的SBT只会从下载神器: 您的 本地Maven回购。 刚刚测试了与旧开源1.6我已经运行,JAVA 1.6,sbt07.4C:\Prog\Java\jdk1.6.0_18\jre\bin\java -Xmx512M -Dsbt.boot.properties=sbt.boot.properties - jar "c:\Prog\Scala\sbt\sbt-launch-0.7.4.jar"

这给:[success] Build completed successfully.

C:\Prog\Scala\tests\pp>sbt

Getting Scala 2.8.0 ...

downloading CodeGo.net

8.0.jar ...

[SUCCESSFUL ] org.scala-lang#scala-compiler2.8.0!scala-compiler.jar (311ms)

downloading CodeGo.net

0.jar ...

[SUCCESSFUL ] org.scala-lang#scala-library2.8.0!scala-library.jar (185ms)

:: retrieving :: org.scala-tools.sbt#boot-scala

confs: [default]

2 artifacts copied, 0 already retrieved (14484kB/167ms)

[info] Building project test 0.1 against Scala 2.8.0

[info] using sbt.DefaultProject with sbt 0.7.4 and Scala 2.7.7

如果我尝试一个有趣的值在sbt.boot.properties文件:C:\Prog\Scala\tests\pp>sbt

Getting Scala 2.9.7 ...

:: problems summary ::

:::: WARNINGS

module not found: org.scala-lang#scala-compiler2.9.7

==== nexus: tried

CodeGo.net

-- artifact org.scala-lang#scala-compiler2.9.7!scala-compiler.jar:

CodeGo.net

所以它会限制自己的两个回购我定义:[repositories]

nexus: CodeGo.net

nexus2: CodeGo.net [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]

(我一切:local,maven-local,...) 如果我所有的仓库,把一个有趣的值(2.7.9)的阶版本的sbt.boot.properties,我也弄(如OP一样)C:\Prog\Scala\tests\pp>sbt

Error during sbt execution: No repositories defined.

如果我把2.7.7(同时还具有所有回购是的,它不会产生错误:C:\Prog\Scala\tests\pp>sbt

[info] Building project test 0.1 against Scala 2.8.0

[info] using sbt.DefaultProject with sbt 0.7.4 and Scala 2.7.7

但是,这只是它已经有了在我尝试下载scala2.8.0。 如果我删除该库从我project/boot目录中,那么它会抛出一个异常:[info] using sbt.DefaultProject with sbt 0.7.4 and Scala 2.7.7

>C:\Prog\Scala\tests\pp>sbt

Error during sbt execution: No repositories defined.

at xsbt.boot.Pre$.error(Pre.scala:18)

at xsbt.boot.Update.addResolvers(Update.scala:197)

...

at xsbt.boot.Boot$.main(Boot.scala:15)

at xsbt.boot.Boot.main(Boot.scala)

Error loading project: Error during sbt execution: No repositories defined.

3. 嗯,这已经有一段让我发现,写了一个SBT插件maven了github上称为Maven的SBT一个家伙,所以你需要做的是将其包含在你的插件项目,使您的项目混入与maven.MavenDependencies和所有您的 *** 作,如更新和发布本地与本地Maven的工作。有关的好处是,如果你是为所有的maven。所以,你的库是在你的本地Maven回购,但如果因为你的原因与构建SBT优先,然后你开始在ivy一堆或罐子了。什么空间浪费,因为你仍然需要让他们为你的Maven构建。 这就是说,我想这是内置到SBT所以我不需要把它添加到每个项目。也许作为一个处理器至少。在有一件事,我读了他想将它添加到0.9,但我一直没能找到它。

4. 第1步:按照在具体议题的说明:代理库,这是我总结并加入如下: (如果你的Artifactory,你可以跳过这一步。)在您的企业Maven仓库创建一个完全独立的Maven代理库(或一组),以代理ivy样式的库,如这两个重要的: 这是必要的储存库管理者不能处理ivy样式和Maven样式的仓库被混合在一起。 创建一个文件repositories,并列出你的主要的企业资源库,您在步骤1中创建,在如下所示的格式的任何额外的一种:[repositories]

my-maven-proxy-releases: CodeGo.net

my-ivy-proxy-releases: CodeGo.net [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

无论是保存在该文件.sbt目录中的目录里面,或者就行指定它:sbt -Dsbt.repository.config=<path-to-your-repo-file>

使用sbt插件创建项目会很麻烦,需要设置国内镜像。这里我们使用华为镜像源。

修改sbtconfig.txt,来启用自定义的镜像源,添加如下配置:

选择下方的Launcher为自己安装的sbt-launch.jar。点击Apply。即可用sbt快速创建项目了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7763849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存