小编Dar*_*key的帖子

如果任务失败,则Gradle任务doLast

我想要一个干净的构建,在那里你可以看到究竟发生了什么,但所有信息都被保留 - 所以基本上对于每个任务,我希望它将输出写入文件,并且只有在任务失败时才显示它.

我试图在gradle中实现这一点 - 但是我被击败了,因为如果任务失败,doLast不会运行.这是我的"差不多"工作模式:

task fakeTask( type: Exec ) {

    standardOutput = new ByteArrayOutputStream()
    commandLine 'cmd', '/c', 'silly'
    doLast {
        new File("build.log") << standardOutput.toString()
        if (execResult.exitValue != 0) println standardOutput.toString()
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有替代doLast可以随时运行?这样做的其他任何方式? - 特别是因为我想为我的每一项任务做这件事?

groovy build gradle

5
推荐指数
2
解决办法
2362
查看次数

Golang直接在模板中使用json

我正在寻找一种将json数据直接绑定到模板中的方法(在golang中没有任何结构表示) - 而且我很简短.基本上,我想要的是让模板文档和json都只是任意数据 - 而我的handleFunc基本上是:

func handler(writer http.ResponseWriter, request *http.Request) {
    t, _ := template.ParseFiles( "someTemplate.html" )
    rawJson, _ := ioutil.ReadFile( "someData.json" )

    // here's where I need help
    somethingTemplateUnderstands := ????( rawJson )

    t.Execute( writer, somethingTemplateUnderstands )
}
Run Code Online (Sandbox Code Playgroud)

我试过json.Unmarshal,但似乎想要一个类型.最重要的是,在实际程序中,json和模板都来自数据库,并且在运行时完全可以更改(并且有很多不同的),因此我无法对go程序本身中的任何结构进行编码.显然,我希望能够制作如下数据:

{ "something" : { "a" : "whatever" }}
Run Code Online (Sandbox Code Playgroud)

然后是一个模板

<html><body>
    the value is {{ .something.a }}
</body></html>
Run Code Online (Sandbox Code Playgroud)

这可以通过go http.template库实现,还是需要转到Node(或找到另一个模板库?)

templates json go go-templates

4
推荐指数
1
解决办法
8140
查看次数

C#中的make方法接受没有类型参数的函数

我的最终目标是获得一个可以采用任何其他功能的功能 - 例如

      void RegisterHandler( Delegate function);
Run Code Online (Sandbox Code Playgroud)

但是 - 我希望能够在不进行任何转换或没有类型参数的情况下调用它 - 显然 Delegate 不起作用。如果我声明:

      void RegisterHandler<T>( Func<T> function );
Run Code Online (Sandbox Code Playgroud)

然后它工作正常 - 这有效:

      string Whatever() {return "hi";}
      ...
      RegisterHandler( whatever );
Run Code Online (Sandbox Code Playgroud)

但是 - 一旦我输入参数,它就不起作用

      void RegisterHandler<TParam1,TReturn>( Func<TParam1, TReturn> function );
      string Something( int x ) {return x.ToString();}
      ...
      RegisterHandler( Something );               //  doesn't compile - wants types specified
      RegisterHandler<int,string>( Something );   // works, but is what I'm trying to avoid
Run Code Online (Sandbox Code Playgroud)

如果“对象”有效,我什至没问题——这只是流畅界面的一部分,我只想能够调用它。我在某处读到参数的数量必须 >= 模板类型的数量,我猜返回类型被计算在内,所以我永远无法实现。

底线 - 我找不到任何c# 签名可以接受任何接受一个参数并返回某些内容的函数。是否可以?

.net c#

4
推荐指数
1
解决办法
725
查看次数

C# Coverlet 结果始终为空

有 .net core 3.1 Microsoft.net.sdk 项目,有大量异步 xUnit 测试。

  • 尝试- 将 coverlet.msbuild 2.9.0 添加到项目中,然后运行: dotnet test Common\Common.csproj /p:CollectCoverage=true / 显示 100%,但创建了一个空的覆盖文件
  • 尝试- 将 coverlet.collector 1.3.0 添加到项目中,然后运行: dotnet test Common\Common.csproj --collect:"XPlat Code Coverage" 在 testresults\{guid}\coverage.cobertura.xml 中创建了一个文件 - 但它只是说lines-covered=0

而 stdout 说 88 个测试在 4 秒内运行。我究竟做错了什么?

c# unit-testing .net-core coverlet

4
推荐指数
1
解决办法
4076
查看次数

.net嵌套事务管理器

我们认为我们理解transactioncope和nesting(transactionscope.requires) - 即


-------------------------------------------------------
inner    | outer     |  
-------------------------------------------------------
commit   | rollback  |  no changes are committed 
commit   | commit    |  all changes are committed
rollback | rollback  |  no changes are committed
rollback | commit    |      ---- doesn't work ----

但是,我想知道,有没有办法创建一个transactioncope,一个嵌套的事务管理器,一个依赖事务,一个自定义事务或其他什么,其中回滚提交方案也有效? -

也就是说,你在库函数中有一些东西,无论出于什么原因都有自己的事务,它存在于父事务之下.如果内部成功,那么外部事务可以访问任何更改,但如果内部回滚,外部事务仍然处于完全可用状态,并且完全不受内部事务的影响,就好像它从未被调用过一样?

c# transactionscope

3
推荐指数
1
解决办法
2253
查看次数

时间:2019-05-16 标签:c#Observable subject hot andcold

我经常遇到这样的情况:我想要一个 UI 元素“观察”一个潜在的值——假设我正在显示一个 int——我想要一个我可以订阅的 IObservable。

我一直在下面使用一个主题,所以我可以设置它。这真的很好用……除了第一次。如果我设置了主题 - 然后稍后通过打开一个新的 UI 元素订阅它 - 它不会触发 onnext 直到下一次更改。

我基本上想要一些像主题一样工作的东西 - 但总是立即对任何新订阅者执行最新值的 onNext 。

我知道我可以自己编写这样的构造 - 但它似乎是一个常见的用例 - 是否有我遗漏的标准?

c# system.reactive

3
推荐指数
1
解决办法
416
查看次数

Visual Studio Code Pylance 搜索文件夹

我有一个项目,里面有一些 python - python 是一个更大的东西的一部分 - 根 git 内的几个目录中有几个程序 - 并且在另一个目录中有一些通用代码。

运行工作正常 - 但 Visual Studio 代码中的 pylance 将所有依赖项视为错误,即使大多数依赖项位于我正在编辑的脚本的当前目录中。如果我打开该子目录,它们可以正常工作 - 但我真的希望在更大的项目级别打开可视化代码。

有没有什么方法可以在目录中的某个位置塞入一个文件,告诉 pylance“这里是 python 搜索路径”之类的?

python visual-studio-code pylance

3
推荐指数
1
解决办法
3749
查看次数

任何编写自定义git合并策略的文档?

有一些二进制文件类型,我已经编写了自己的代码来干净地合并.我试图通过在.gitconfig中添加带有驱动程序的合并命令行并在.gitattributes中添加文件表达式来指向我的合并程序来添加自己的合并策略.

它的工作原理 - 如果我使用该文件类型进行git合并,它会调用我的程序 - 如果我以1退出则失败并说它存在冲突 - 如果为0则成功.

但是 - 我找不到任何关于它如何获取参数的文档 - 即我如何知道正在合并的文件 - 它正在合并的文件等等.它们不是作为环境变量进来的...我知道驱动程序命令行我可以放一些变量,但经过反复试验,$ PWD是我发现的唯一可行的.

有人能指出我有关如何编写自定义合并策略的任何文档吗?

git merge

2
推荐指数
1
解决办法
79
查看次数

抑制 python 中的弃用

所以 - 我正在使用库 pyminizip - 这是我发现创建受密码保护的 zip 文件的唯一方法。当我使用它时,我收到一条弃用警告:“#”格式将需要 PY_SSIZE_T_CLEAN。

现在,我无法控制该库,无法修复它 - 我似乎也没有一个简单的替代方案来使用它 - 而且它工作得很好。因此,弃用警告给我带来了零价值 - 但它干扰了我的工具的 UI - 正如它出现在标准输出上一样。有什么办法可以抑制它/让它消失吗?

我称呼它的方式是:

   import pyminizip
   pyminizip.compress_multiple( [ prod_report ], [], f"C:/temp/report{name}.zip", "Password", 9 )
Run Code Online (Sandbox Code Playgroud)

python deprecated

2
推荐指数
1
解决办法
6331
查看次数

使用 Scala 反射获取构造函数参数值

在带有 Scala 的代码库中工作,它希望您为某些类定义一种“制作新版本” - 例如,如果您有一个类 x(a :int, b:String, c:double).. . 它会有这样的功能:

class x( a: Integer, b : String, c : Double) extends CanMakeNew
{
    def newValue() = x( a, b, c)
}
Run Code Online (Sandbox Code Playgroud)

我无法控制它 - 但不想每次都实现它。或者,嗯……永远。在 Scala 中有一种方法可以通过反射来迭代构造函数参数值吗?我可以使用反射来查看参数类型- 但由于该模块的参数名称尚未打开,我无法打开它 - 我无法将这些与类中存储的值相关联。从根本上说,我正在寻找实现以下特征的方法:

trait CanMakeNewDoneForMe extends CanMakeNew {
    def newValue()  {I need the code that goes here}
Run Code Online (Sandbox Code Playgroud)

那么scala反射有没有办法检查构造函数或检查对象并看到“啊,这是构造函数中的第三个参数”?

reflection scala scala-macros scala-reflect

0
推荐指数
1
解决办法
477
查看次数