怎么玩!在 MSYS bash 中运行的框架

Posted

技术标签:

【中文标题】怎么玩!在 MSYS bash 中运行的框架【英文标题】:How to get play! framework running in MSYS bash 【发布时间】:2012-05-04 20:14:01 【问题描述】:

我不能玩!来自 MSYS shell 的框架(在 Windows 上的 Git 中使用)。

Error during sbt execution: Could not find configuration file
'c:/Dev/Prg/Play/framework/sbt/play.boot.properties'.  Searched:
        file:/C:/Users/Paul/
        file:/C:/Users/Paul/
        file:/C:/Dev/Prg/Play/framework/sbt/

有没有办法让它运行?

【问题讨论】:

+1。刚刚遇到了同样的问题。我想我现在只需要在常规命令提示符下运行它。 【参考方案1】:

Play mailing list 上已发布此问题的解决方案:a patch 解决了问题。

diff -r --unified play-2.0-orig/framework/build play-2.0-cygwin/framework/build
--- play-2.0-orig/framework/build   2012-03-12 20:25:28.000000000 -0700
+++ play-2.0-cygwin/framework/build 2012-06-15 17:56:57.436000000 -0700
@@ -8,4 +8,4 @@
   DEBUG_PARAM="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$JPDA_PORT"
 fi

-java $DEBUG_PARAM -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -Dfile.encoding=UTF8 -Dplay.version="$PLAY_VERSION" -Dsbt.ivy.home=`dirname $0`/../repository -Dplay.home=`dirname $0` -Dsbt.boot.properties=`dirname $0`/sbt/sbt.boot.properties -jar `dirname $0`/sbt/sbt-launch.jar "$@"
\ No newline at end of file
+java $DEBUG_PARAM -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -Dfile.encoding=UTF8 -Dplay.version="$PLAY_VERSION" -Dsbt.ivy.home=`dirname $0`/../repository -Dplay.home=`dirname $0` -Dsbt.boot.properties=$BOOTPROP`dirname $0`/sbt/sbt.boot.properties -jar `dirname $0`/sbt/sbt-launch.jar "$@"
diff -r --unified play-2.0-orig/play play-2.0-cygwin/play
--- play-2.0-orig/play  2012-03-12 20:22:03.000000000 -0700
+++ play-2.0-cygwin/play    2012-06-15 20:48:41.624800000 -0700
@@ -1,5 +1,23 @@
 #! /usr/bin/env sh

+case `uname` in
+  CYGWIN*)
+    function dirname 
+      cygpath -m `command dirname $@`
+    
+    typeset -fx dirname
+    export BOOTPROP="file:///"
+    ;;
+  MINGW32*)
+    function dirname  (cd `command dirname $@`; pwd -W) 
+    typeset -fx dirname
+    export BOOTPROP="file:///"
+    ;;
+  *)
+    export BOOTPROP=""
+    ;;
+esac
+
 PRG="$0"
 while [ -h "$PRG" ] ; do
     PRG=`readlink "$PRG"`
@@ -54,5 +72,5 @@
   fi

 else
-  java -Dsbt.ivy.home=$dir/repository -Dplay.home=$dir/framework -Dsbt.boot.properties=$dir/framework/sbt/play.boot.properties -jar $dir/framework/sbt/sbt-launch.jar "$@"
+  java -Dsbt.ivy.home=$dir/repository -Dplay.home=$dir/framework -Dsbt.boot.properties=$BOOTPROP$dir/framework/sbt/play.boot.properties -jar $dir/framework/sbt/sbt-launch.jar "$@"
 fi

【讨论】:

【参考方案2】:

solution 用于 play-2.1.3。

    启动mingw32 cd /path/to/play-2.1.3 补丁-p1 /to/play_cygwin.patch

此补丁的副本:

diff -r --unified play-2.1.3/framework/build play-2.1.3-cygwin/framework/build
--- play-2.1.3/framework/build   2013-08-06 12:29:56 +0000
+++ play-2.1.3-cygwin/framework/build   2013-09-04 13:44:05 +0000
@@ -10,4 +10,4 @@
   DEBUG_PARAM="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$JPDA_PORT"
 fi

-java $DEBUG_PARAM -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M $JAVA_OPTS -Dfile.encoding=UTF-8 -Dplay.version="$PLAY_VERSION" -Dsbt.ivy.home=`dirname $0`/../repository -Dplay.home=`dirname $0` -Dsbt.boot.properties=`dirname $0`/sbt/sbt.boot.properties -jar `dirname $0`/sbt/sbt-launch.jar "$@"
+java $DEBUG_PARAM -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M $JAVA_OPTS -Dfile.encoding=UTF-8 -Dplay.version="$PLAY_VERSION" -Dsbt.ivy.home=`dirname $0`/../repository -Dplay.home=`dirname $0` -Dsbt.boot.properties=$BOOTPROP`dirname $0`/sbt/sbt.boot.properties -jar `dirname $0`/sbt/sbt-launch.jar "$@"
diff -r --unified play-2.1.3/play play-2.1.3-cygwin/play
--- play-2.1.3/play 2013-09-04 02:44:05 +0000
+++ play-2.1.3-cygwin/play  2013-09-04 13:51:36 +0000
@@ -1,5 +1,23 @@
 #! /usr/bin/env sh

+case `uname` in
+  CYGWIN*)
+    function dirname 
+      cygpath -m `command dirname $@`
+    
+    typeset -fx dirname
+    export BOOTPROP="file:///"
+    ;;
+  MINGW32*)
+    function dirname  (cd `command dirname $@`; pwd -W) 
+    typeset -fx dirname
+    export BOOTPROP="file:///"
+    ;;
+  *)
+    export BOOTPROP=""
+    ;;
+esac
+
 PRG="$0"
 while [ -h "$PRG" ] ; do
   PRG=`readlink "$PRG"`
@@ -61,5 +79,5 @@
   fi

 else
-  "$JAVA" -Dsbt.ivy.home=$dir/repository -Dplay.home=$dir/framework -Dsbt.boot.properties=$dir/framework/sbt/play.boot.properties -jar $dir/framework/sbt/sbt-launch.jar "$@"
+  "$JAVA" -Dsbt.ivy.home=$dir/repository -Dplay.home=$dir/framework -Dsbt.boot.properties=$BOOTPROP$dir/framework/sbt/play.boot.properties -jar $dir/framework/sbt/sbt-launch.jar "$@"
 fi

【讨论】:

【参考方案3】:

我遇到了同样的问题。 在我的情况下,由于目录名称中有空格而发生了问题。我重命名了我的一个文件夹,它的名称中包含空格,我的问题得到了解决。

【讨论】:

以上是关于怎么玩!在 MSYS bash 中运行的框架的主要内容,如果未能解决你的问题,请参考以下文章

MSYS2 不来源 .profile

在 clion 的项目目录中启动嵌入式 MSYS bash

在不退出的情况下运行 bash -c

MSYSGIT BASH : 对 MS SQL Server 执行 SQL

从 C# Windows 窗体内部调用的 Bash 脚本

msys2提示:-bash: cmake: command not found