gpt4 book ai didi

scala - 如何在 SBT 中解决我自己的测试工件?

转载 作者:行者123 更新时间:2023-12-04 03:12:20 25 4
gpt4 key购买 nike

我的一个项目将提供一个 jar 包,用于在其他几个项目中进行单元测试。到目前为止,我设法让 sbt 产生了 objects-commons_2.10-0.1-SNAPSHOT-test.jar并将其发布在我的存储库中。

但是,我找不到一种方法来告诉 sbt 在其他项目中将该工件与测试范围一起使用。

在我的 build.scala 中添加以下依赖项不会加载测试工件。

"com.company" %% "objects-commons" % "0.1-SNAPSHOT",
"com.company" %% "objects-commons" % "0.1-SNAPSHOT-test" % "test",

我需要的是使用默认的 .jar 文件作为编译和运行时依赖项,并将 -test.jar 作为我测试范围中的依赖项。但不知何故 sbt 从不尝试解析测试 jar。

最佳答案

如何使用测试工件

要在发布主工件时启用发布测试工件,您需要添加到库的 build.sbt 中:

publishArtifact in (Test, packageBin) := true

发布您的工件。应该至少有两个 JAR:objects-commons_2.10.jar 和 objects-commons_2.10-test.jar。

要在运行时使用库和在测试范围内使用测试库,请将以下几行添加到主应用程序的 build.sbt 中:
libraryDependencies ++= Seq("com.company" % "objects-commons_2.10" % "0.1-SNAPSHOT"
, "com.company" % "objects-commons_2.10" % "0.1-SNAPSHOT" % "test" classifier "tests" //for SBT 12: classifier test (not tests with s)
)

第一个条目加载运行时库,第二个条目强制“测试”工件仅在测试范围内可用。

我创建了一个示例项目:
git clone git@github.com:schleichardt/stackoverflow-answers.git --branch so15290881-how-do-i-resolve-my-own-test-artifacts-in-sbt

或者您可以查看 the example直接在github上。

关于scala - 如何在 SBT 中解决我自己的测试工件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15290881/

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