我注意到如果curl请求是ctrl + c,则以下代码将使用相同的package mycompany
import sbt._
import Keys._
object MyReleaseConfigPlugin extends AutoPlugin {
override def trigger: PluginTrigger = allRequirements
override def requires = sbtrelease.ReleasePlugin
/* common release configuration code example */
import sbtrelease.ReleasePlugin.autoImport._
import ReleaseTransformations._
override lazy val projectSettings = Seq(
releaseProcess := Seq[ReleaseStep](
checkSnapshotDependencies,
inquireVersions,
runClean,
setReleaseVersion,
commitReleaseVersion,
tagRelease,
publishArtifacts),
releaseIgnoreUntrackedFiles := false,
publishMavenStyle := true,
credentials += Credentials(
"Artifactory Realm",
"artifactory.mycompany.com",
sys.env.get("REPO_USER").getOrElse(""),
sys.env.get("REPO_PASS").getOrElse(""))
)
}
对象(调试时的哈希代码相同),然后重新运行。即使使用不同的参数,它也使用相同的OutputStream
。这显然导致非常奇怪的输出。
原始输出流在写入OutputStream
时开始抛出NullPointerException
,因为基础OutputStream
不再存在(断开管道)。这就是为什么我认为后续请求会重用相同的HttpOutputStream
对象是很奇怪的。
在finally块中关闭输出流可以解决问题。我在网上看到的一些例子没有明确地关闭输出流。是否预期重用OutputStream
?有没有人对我为什么会看到这种行为有任何想法?
OutputStream