小编Cod*_*rer的帖子

我可以让maven-assembly-plugin更快吗?

我有一个maven多模块项目.最终目标包含了我们在tarball和RPM中构建的所有库等,以便进行分发.这个目标使用maven-assembly-plugin,它需要永远 - 通常是我们总构建时间的一半到一半.

我想我们已经告诉Maven运行多线程(虽然我不是正面的,但不知道如何检查).我可以做任何其他优化来使拆包/重新包装更快吗?这只是一个使用更强大的机器的问题?我们的项目看起来并不那么大(最终结果是~70-80 MB),但只需要一分钟即可完成.

performance maven maven-assembly-plugin

8
推荐指数
1
解决办法
1950
查看次数

我应该如何对调用MySQL存储过程的Java进行单元测试?

我正在编写一个简单的应用程序,它将读取一些记录并将它们插入数据库中.我编写了一个处理插入逻辑的存储过程,并计划单独测试它.现在,我想为获取业务对象并将其传递给存储过程调用的逻辑部分编写一个良好的单元测试.

我想做的是传递数据库连接的模拟,然后声明调用是使用预期的参数值:

Connection dbConnection = makeMockConnection();  // how?
MyObjectWriter writer = new MyObjectWriter(dbConnection);
writer.write(someSampleObject);
// somehow assert that dbConnection called
// `sp_saveMyObject` with param values x, y, and z
Run Code Online (Sandbox Code Playgroud)

然而,似乎有很多工作在里面挖掘java.sql.Connection,了解它是如何工作的,然后模拟所有结果.有没有一个测试库可以为我做这一切?我是以错误的方式来的吗?

java mysql unit-testing

8
推荐指数
1
解决办法
2661
查看次数

我可以在 Angular 模板中进行类型缩小吗?

我有一个将业务对象作为输入的组件。在此组件的模板中,我想通过检查仅存在于业务对象的某些子类上的属性值来有条件地呈现某些内容。

export class Thing { public foo: string; }
export class SubThing extends Thing { public bar: number; }

// ...
export class MyComponent {
  @Input() thing: Thing;
}
Run Code Online (Sandbox Code Playgroud)
<!-- template file -->
{{ thing.foo }}
<div *ngIf="thing?.bar > 10">Conditional content...</div>
Run Code Online (Sandbox Code Playgroud)

这曾经按编写的方式工作,因为编译器对模板中的类型检查不是很严格。最近这开始与 AOT 编译器中断(不确定确切时间),因为严格来说,thing?.bar当编译器认为thing只是 a时无效Thing,并且不能肯定地说它是SubThing.

我想说类似的话,*ngIf="thing instanceof SubThing && thing?.bar > 10"但我不能instanceof在模板本身中使用。有没有其他方法可以检查thing模板中的类型,以便编译器停止抱怨?(我通过指定我的 Input as 使构建再次工作,any但当然如果可能的话,我想让我的类型检查。)

typescript angular

7
推荐指数
1
解决办法
2914
查看次数

我可以针对Fetch API响应使用DOM查询方法吗?

我正在尝试自动化与旧的Web界面进行交互,该界面目前只暴露用户驱动的表单,因此我需要从带有动态请求的网页中抓取一些信息.

如果我使用XHR,我可以将响应视为a Document,这使我可以使用类似方法querySelector从特定节点检索信息.我想尝试使用Fetch API,它只给我一个Body.这blob,formData,json,和text,但我没有看到任何东西,会让我把它作为一个Document.

我错过了什么吗?我可以直接从中查询文档或其他内容fetch吗?如果没有,是否有一种简单的方法来获取字符串(从Body.text())并将其转换为文档?

javascript fetch-api

7
推荐指数
1
解决办法
2780
查看次数

MediaWiki模板中的字符串函数?

最近我遇到的一种比较有趣的"编程语言"是MediaWiki模板.你可以用他们给你的有限语法做一些令人惊讶的事情,但是最近我遇到了一个让我困惑的问题:在模板参数上使用字符串函数.我想做的(有点简化)是:

{{myTemp|a=1,2,3,4}}
Run Code Online (Sandbox Code Playgroud)

然后写一个可以做某种神奇的模板

You told me _a_ starts with {{#split:{{{a}}}, ",", 0}}
Run Code Online (Sandbox Code Playgroud)

目前,我可以使用嵌入式javascript,捕获正则表达式匹配和document.write,但a)它是巨大的,b)它是hacky,并且c)如果有人关闭javascript它会破坏.(注意,"split"只是一个例子;连接,capture-regexp匹配等等,会更好)

我意识到正确的解决方案是让调用者使用单独的参数调用模板,但出于各种原因,在我的特定情况下会很难.如果这是根本不可能的,我想这就是答案,但如果有一些方法有模板做字符串操作在后端,那简直太好了.

string wiki mediawiki templates

6
推荐指数
1
解决办法
1670
查看次数

我可以覆盖svn:忽略个别目录吗?

Subversion的默认全局忽略可以很好地保持构建工件不受版本控制.如果我需要为我的东西分发编译代码目录怎么办?

我并不想拿起我的输出(在,说/target),我想继续无视所有我的大多数其他项目的编译代码,而只是一个目录(比如/input)需要始终跟踪与文件.a扩展名.

是否有一个属性我可以在/input目录上设置将在那里svn add拾取新.a文件,而不改变global-ignores属性?

svn svnignore

6
推荐指数
1
解决办法
1859
查看次数

我可以在保持焦点的同时移动 DOMElement 吗?

假设我有一个带有 , 的简单 HTML 页面textarea,并且我想将其包装textarea在 DIV 中。但是,这种情况并不总是发生在启动/页面加载时,因此用户可能会将焦点放在该区域,甚至正在打字。

我可以通过创建一个 DIV 来移动/包裹该区域,将其附加到 的textarea父级,然后将textarea其放入其中,效果很好。然而,当我这样做时,焦点就会被移除textarea,如果用户正在打字,他们会生气。

如何textarea在不中断用户的情况下移动 的 DOM 节点?这可能吗?

javascript dom focus

6
推荐指数
1
解决办法
1002
查看次数

如何在Maven工件中运行Java类,自动解析依赖项?

如果我知道工件的坐标,以及该工件中的类的名称,我可以让Maven运行该类,包括它在Java类路径上的所有依赖项吗?

例如,假设一位同事告诉我一个我可以运行的工具,该工具使用工件坐标发布到我们的内部Nexus example:cool-tools:1.0.0.我用这个答案来下载工件.现在,我知道主要的类名是example.Main.但是,如果我只是去工件的下载位置并运行java -cp cool-tools-1.0.0.jar example.Main,我会得到NoClassDefFoundError任何依赖项cool-tools.

我知道这一点maven-exec-plugin,但据我所知,这只适用于有源的项目.假设我没有访问源,只有包含该工具的Nexus(及其所有依赖项).理想情况下,我会做类似的事情mvn exec:exec -DmainArtifact='example:cool-tools:1.0.0' -DmainClass='example.Main',但我不认为exec插件实际上能够做到这一点.

ETA:要清楚,我没有本地项目/ POM.我想使用命令行,而不是编写POM,如果可能的话.

java dependencies maven

6
推荐指数
1
解决办法
1229
查看次数

我可以在 JSDoc @return 中引用参数类型吗?

我想记录一个返回类型取决于提供的参数的函数:

/**
* @param {*} x A thing
* @return {????} The thing in an array
*/
function arrayOf(x) { return [x]; }
Run Code Online (Sandbox Code Playgroud)

是否可以命名或以其他方式引用函数参数的实际类型,以便我可以使用它来指定返回?

javascript jsdoc

6
推荐指数
1
解决办法
1393
查看次数

我应该如何告诉 Typescript 编译器在其他地方定义的全局变量?

我正在编写普通 Javascript并尝试通过指定checkJs标志在 VSCode 中使用 TS 类型检查。(过去一周这真是一次冒险!)

我的项目使用 Webpack / Babel 捆绑的 ES6 模块;入口点 ( app.js) 导出一个全局变量:

var viewer;
viewer = ...
window.viewer = viewer;
Run Code Online (Sandbox Code Playgroud)

我告诉其他模块这个变量,所以eslint不会打扰我:

/* global viewer */
var val = viewer.val;
Run Code Online (Sandbox Code Playgroud)

这工作正常,但现在 TS 检查器抱怨

[js] Cannot find name 'viewer'.
Run Code Online (Sandbox Code Playgroud)

我如何告诉 TS 编译器我已经在当前文件之外定义了它?TS 是否需要更新以尊重 eslintglobal注释,或者它可能有自己的注释指令语法?

javascript visual-studio-code

6
推荐指数
1
解决办法
1592
查看次数