英文:
Saving sbt command output to a file in Scala
问题
以下是您要翻译的内容:
"I am running cmd like "sbt dependencyTree" but it gives outlut like, first few lines some info about versions and all then gives the origanl cmd output.
Is there a way to directly put the cmd output in file using sbt cmd.
eg. sbt dependencyTree"
您要求的输出:
"I want the output only like below :
[info] org.http4s:http4s_2.13:0.23.19-6-b22f722-SNAPSHOT [S]
[info] org.http4s:http4s-scalafix-internal_2.13:0.23.19-6-b22f722-SNAPSHOT [S]
[info] +-ch.epfl.scala:scalafix-core_2.13:0.10.4 [S]
[info] +-com.geirsson:metaconfig-typesafe-config_2.13:0.10.0 [S]
[info] | +-com.geirsson:metaconfig-core_2.13:0.10.0 [S]
[info] | | +-com.geirsson:metaconfig-pprint_2.13:0.10.0 [S]
[info] | | | +-com.lihaoyi:fansi_2.13:0.3.0
[info] | | | | +-com.lihaoyi:sourcecode_2.13:0.2.7 (evicted by: 0.3.0)
[info] | | | | +-com.lihaoyi:sourcecode_2.13:0.3.0 [S]
[info] | | | |
[info] | | | +-org.scala-lang:scala-compiler:2.13.10 [S]
[info] | | | | +-io.github.java-diff-utils:java-diff-utils:4.12`
[info] | | | | +-net.java.dev.jna:jna:5.9.0"
请告诉我是否还需要其他信息。
英文:
I am running cmd like "sbt dependencyTree" but it gives outlut like, first few lines some info about versions and all then gives the origanl cmd output.
Is there a way to directly put the cmd output in file using sbt cmd.
eg. sbt dependencyTree
[info] welcome to sbt 1.8.3 (Eclipse Adoptium Java 17.0.7)
[info] loading settings for project http4s-build from build.sbt,plugins.sbt ...
[info] loading project definition from /Users/chandrapratapprajapati/sbt-local/http4s/project
[info] loading settings for project root from build.sbt ...
[info] resolving key references (63042 settings) ...
[info] set scmInfo to https://github.com/http4s/http4s
[info] set current project to http4s (in build file:/Users/chandrapratapprajapati/sbt-local/http4s/)
[info] org.http4s:http4s_2.13:0.23.19-6-b22f722-SNAPSHOT [S]
[info] org.http4s:http4s-scalafix-internal_2.13:0.23.19-6-b22f722-SNAPSHOT [S]
[info] +-ch.epfl.scala:scalafix-core_2.13:0.10.4 [S]
[info] +-com.geirsson:metaconfig-typesafe-config_2.13:0.10.0 [S]
[info] | +-com.geirsson:metaconfig-core_2.13:0.10.0 [S]
[info] | | +-com.geirsson:metaconfig-pprint_2.13:0.10.0 [S]
[info] | | | +-com.lihaoyi:fansi_2.13:0.3.0
[info] | | | | +-com.lihaoyi:sourcecode_2.13:0.2.7 (evicted by: 0.3.0)
[info] | | | | +-com.lihaoyi:sourcecode_2.13:0.3.0 [S]
[info] | | | |
[info] | | | +-org.scala-lang:scala-compiler:2.13.10 [S]
[info] | | | | +-io.github.java-diff-utils:java-diff-utils:4.12
[info] | | | | +-net.java.dev.jna:jna:5.9.0
I want the output only like below :
[info] org.http4s:http4s_2.13:0.23.19-6-b22f722-SNAPSHOT [S]
[info] org.http4s:http4s-scalafix-internal_2.13:0.23.19-6-b22f722-SNAPSHOT [S]
[info] +-ch.epfl.scala:scalafix-core_2.13:0.10.4 [S]
[info] +-com.geirsson:metaconfig-typesafe-config_2.13:0.10.0 [S]
[info] | +-com.geirsson:metaconfig-core_2.13:0.10.0 [S]
[info] | | +-com.geirsson:metaconfig-pprint_2.13:0.10.0 [S]
[info] | | | +-com.lihaoyi:fansi_2.13:0.3.0
[info] | | | | +-com.lihaoyi:sourcecode_2.13:0.2.7 (evicted by: 0.3.0)
[info] | | | | +-com.lihaoyi:sourcecode_2.13:0.3.0 [S]
[info] | | | |
[info] | | | +-org.scala-lang:scala-compiler:2.13.10 [S]
[info] | | | | +-io.github.java-diff-utils:java-diff-utils:4.12`
[info] | | | | +-net.java.dev.jna:jna:5.9.0
IS there a way to achieve that.
答案1
得分: 2
你可以通过运行以下命令来实现:
sbt 'dependencyGraph/toFile "/path/to/output"'
如果你是从sbt REPL运行的,你可以省略命令周围的单引号(当然也可以省略sbt
)。
请注意,这在单个模块上运行良好,但在聚合项目上不起作用(这是一个已知问题),所以如果你需要在多模块项目上运行它,你需要手动在各个子项目上进行范围运行,例如:
sbt 'someSubModuleName/depedencyGraph/toFile "/path/to/output"'
结果将仅包含依赖树,没有[info]
前缀,希望这对你不是问题。
英文:
You can do so by running the following:
sbt 'dependencyGraph/toFile "/path/to/output"'
If you are running from the sbt REPL you can omit the single quotes around the command (and sbt
as well, of course).
Please note that this works fine on individual modules but not on aggregates (it's a known issue), so if you need to run it on a multi-module project you'll have to manually run it scoped on individual sub-projects, e.g.:
sbt 'someSubModuleName/depedencyGraph/toFile "/path/to/output"'
The result will contain only the dependency tree, without the [info]
prefix, hopefully that's not a problem for you.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论