gpt4 book ai didi

playframework - 如何在 Play 2.3 中更改 .activator .sbt .ivy 文件夹的位置?

转载 作者:行者123 更新时间:2023-12-04 06:06:59 26 4
gpt4 key购买 nike

我刚刚开始学习 Play Framework 2.3.0 并且正在尝试移动

  • .activator
  • .sbt
  • .ivy

  • 来自 %USERPROFILE% 的文件夹文件夹到自定义文件夹,如 C:/learning/playframework/在我的 Windows 7 机器上。我希望它们在操作系统重新安装期间是可移植的/不会丢失。

    我修改了 sbt.boot.properties并更改了 user.home到自定义位置并通过 play.homeactivator.bat作为参数。

    虽然 .sbt.ivy文件夹最初是在自定义文件夹中创建的,当我尝试创建新应用程序时 HelloWorld所有这些文件夹再次在用户目录中创建 %USERPROFILE%并且所有文件都在那里下载。 .activator永远不会在自定义文件夹中创建,而始终在 %USERPROFILE% 中创建文件夹。

    我还确保路径中没有空格。

    sbt.boot.properties:
    [app]
    org: com.typesafe.activator
    name: activator-launcher
    version: ${activator.version-read(activator.version)[1.2.1]}
    class: activator.ActivatorLauncher
    cross-versioned: false
    components: xsbti

    [repositories]
    local
    activator-local: file://${activator.local.repository-${activator.home-${play.home}/.activator}/repository}, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
    maven-central
    typesafe-releases: http://repo.typesafe.com/typesafe/releases
    typesafe-ivy-releasez: http://repo.typesafe.com/typesafe/ivy-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

    [boot]
    directory: ${sbt.boot.directory-${sbt.global.base-${play.home}/.sbt}/boot/}
    properties: ${activator.boot.properties-${play.home}/.activator/version-${activator.launcher.generation-0}.properties}

    [ivy]
    ivy-home: ${play.home}/.ivy2
    checksums: ${sbt.checksums-sha1,md5}
    override-build-repos: ${sbt.override.build.repos-false}
    repository-config: ${sbt.repository.config-${sbt.global.base-${play.home}/.sbt}/repositories}

    请建议配置激活器/Play Framework ,以便 - 在自定义目录中创建 3 个目录和存储库,例如 C:/learning/playframework/ .

    最佳答案

    The .activator never gets created in the custom folder and is always created in the %USERPROFILE% folder.



    我的理解是 ~/.activator由启动脚本控制,您应该能够在其中指向自定义目录。

    对于 ~/.sbt你真的应该使用 sbt.global.base我看到它在 sbt 代码本身中使用的属性。

    如果您想深入了解,可以使用 consoleProject 查询 sbt 和 Ivy 的主目录的当前值。命令(假设您从 activator 开始 activator -Dsbt.global.base=./sbt -Dsbt.ivy.home=./ivy2 ):
    > consoleProject
    [info] Starting scala interpreter...
    [info]
    import sbt._
    import Keys._
    import _root_.sbt.plugins.IvyPlugin
    import _root_.sbt.plugins.JvmPlugin
    import _root_.sbt.plugins.CorePlugin
    import _root_.sbt.plugins.JUnitXmlReportPlugin
    import currentState._
    import extracted._
    import cpHelpers._
    Welcome to Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_60).
    Type in expressions to have them evaluated.
    Type :help for more information.

    scala> appConfiguration.eval.provider.scalaProvider.launcher.bootDirectory
    res0: java.io.File = /Users/jacek/sandbox/sbt-launcher/minimal-scala/sbt/boot

    scala> appConfiguration.eval.provider.scalaProvider.launcher.ivyHome
    res1: java.io.File = /Users/jacek/.ivy2

    如果您真的很想说服 Activator 使用 sbt.ivy.home ,你要改 sbt/sbt.boot.propertiesactivator-launch-1.2.2.jar .只需按照以下步骤操作:
  • 开箱 sbt/sbt.boot.propertiesactivator-launch-1.2.2.jar .
    jar -xvf activator-launch-1.2.2.jar sbt/sbt.boot.properties
  • 编辑 sbt/sbt.boot.properties并替换 ivy-home[ivy] .
    ivy-home: ${sbt.ivy.home-${user.home}/.ivy2}
  • 添加更改后的 sbt/sbt.boot.propertiesactivator-launch-1.2.2.jar .
    jar -uvf activator-launch-1.2.2.jar sbt/sbt.boot.properties

  • 随着变化, -Dsbt.ivy.home=./ivy2工作正常。
    scala> appConfiguration.eval.provider.scalaProvider.launcher.bootDirectory
    res0: java.io.File = /Users/jacek/sandbox/sbt-launcher/minimal-scala/sbt/boot

    scala> appConfiguration.eval.provider.scalaProvider.launcher.ivyHome
    res1: java.io.File = /Users/jacek/sandbox/sbt-launcher/minimal-scala/ivy2

    关于playframework - 如何在 Play 2.3 中更改 .activator .sbt .ivy 文件夹的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24182450/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com