在某些情况下,我想失败的构建.我怎么做?
我试过了:
throw RuntimeException("Build failed for some specific reason!")
Run Code Online (Sandbox Code Playgroud)
事实上这确实无法构建.但是,日志显示异常:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use new java.lang.RuntimeException java.lang.String
Run Code Online (Sandbox Code Playgroud)
这对用户来说有点混乱.有没有更好的办法?
我需要一个类似于Dictionary的对象,它可以使用相同的密钥存储多个条目.这可以作为标准集合,还是我需要自己动手?
为了澄清,我希望能够做到这样的事情:
var dict = new Dictionary<int, String>();
dict.Add(1, "first");
dict.Add(1, "second");
foreach(string x in dict[1])
{
Console.WriteLine(x);
}
Run Code Online (Sandbox Code Playgroud)
输出:
first
second
Run Code Online (Sandbox Code Playgroud) 我正在使用Jenkins文件与Jenkins 2.0一起使用.该readMavenPom方法无法识别.是否有一些我缺少的配置可以使它可用?
我的詹金斯文件:
node {
stage 'Checkout'
checkout scm
env.PATH = "${tool 'maven-3'}/bin:${env.PATH}"
stage 'Build'
def pom = readMavenPom file: 'pom.xml'
echo "${pom}"
sh "mvn -DskipTests=true verify"
}
Run Code Online (Sandbox Code Playgroud)
运行时,我收到以下错误:
Run Code Online (Sandbox Code Playgroud)java.lang.NoSuchMethodError: No such DSL method 'readMavenPom' found among [AWSEBDeployment, archive, bat, build, catchError, checkout, deleteDir, dir, echo, emailext, error, fileExists, git, input, isUnix, load, mail, node, parallel, properties, pwd, readFile, retry, sh, slackSend, sleep, stage, stash, step, svn, timeout, tool, unarchive, unstash, waitUntil, withCredentials, withEnv, wrap, writeFile, ws]
我正在设置一些基于MSTest的单元测试.为了让我的生活更轻松,我想使用一个基类来处理通用设置和我所有测试所需的taredown.我的基类看起来像这样:
[TestClass]
public class DBTestBase {
public TestContext TestContext { get; set; }
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext) {
var config = new XmlConfigurationSource("ARconfig_test.xml");
ActiveRecordStarter.Initialize(Assembly.Load("LocalModels"), config);
}
[TestInitialize()]
public void MyTestInitialize() {
ActiveRecordStarter.CreateSchema();
Before_each_test();
}
protected virtual void Before_each_test() { }
[TestCleanup()]
public void MyTestCleanup() {
After_each_test();
}
protected virtual void After_each_test() { }
}
Run Code Online (Sandbox Code Playgroud)
我的实际测试类看起来像这样:
[TestClass]
public class question_tests : DBTestBase {
private void CreateInitialData() {
var question = new Question()
{
Name = "Test Question",
Description = …Run Code Online (Sandbox Code Playgroud) 这编译:
public class A<T> {
public void test() {
var a = typeof (A<>);
}
}
Run Code Online (Sandbox Code Playgroud)
这不是:
public class A<T,S> {
public void test() {
var a = typeof (A<>);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到错误:使用泛型类型'A'需要2个类型参数
如何使用两个参数获取对此泛型类型的引用?
我无法让Intellij识别antlr4生成的源代码.对生成的代码的任何引用都显示为错误,代码完成不起作用等.
我正在使用maven和antlr4-maven-plugin来生成代码.我的代码,引用生成的代码编译并在maven下构建良好.生成的代码位于/ target/generated-sources/antlr4下,这正是Intellij所期望的.
我已经尝试过常用的修复程序,例如重新导入maven项目,更新文件夹,使缓存无效等等.似乎没有任何工作.
有人见过这个吗?有没有办法直接在Intellij中指向生成的源?
我有一个XSLT块,可以在整个转换过程中多次应用.但我希望它实际上只在第一次应用时运行,它应该被忽略所有的次数.我该怎么做呢?
作为一个例子,这是我想要做的事情:在样式表中我定义了一个全局变量:
<xsl:variable name="run_once" select="0"/>
Run Code Online (Sandbox Code Playgroud)
然后我有一个多次调用的模板:
<xsl:template name="some_template">
<xsl:if test="$run_once != 1">
<xsl:variable name="run_once" select="1"/>
<xsl:text>THIS TEXT SHOULD APPEAR ONLY ONCE</xsl:text>
</xsl:if>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
这当然不起作用,因为变量不能改变,只能重载.因此,一旦some_template退出,$ run_once再次为0,并且每次调用模板时都会应用文本.是否有某种类型的ifdef功能或我可以设置的其他全局对象?
如果您对我为什么要这样做感兴趣,下面是对我的问题和我使用的解决方案的更详细的解释:
这是我最终使用的解决方案:
...
<xsl:apply-templates select="theNode[hairyLogic]"/>
...
<xsl:template match="theNode">
<xsl:if test="count(preceding-sibling::theNode[type = current()/type and hairyLogic])=0">
<xsl:choose>
<xsl:when test="type = 'TYPE1a' or type = 'TYPE1b'">
<xsl:call-template name="TYPE1Heading"/>
</xsl:when>
<xsl:when test="type = 'TYPE2'">
<xsl:call-template name="TYPE2Heading"/>
</xsl:when>
</xsl:choose>
</xsl:if>
...
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
我选择使用命名模板作为标题,因为它们包含不依赖于输入XML中任何数据的基本WordML.
我不喜欢这个解决方案,因为hairyLogic被重复并且if语句很复杂且难以阅读.也许你有一个更好的解决方案,不需要可变变量?
有没有一种简单的方法来比较两个XML结构,以确定它们是否具有相同的结构和数据?
我有一个返回XmlNode的函数,我正在尝试为它编写单元测试.我将正确的XML结果存储在一个文件中.在测试中,我将文件加载到XmlDocument中,找到正确的XmlNode并与函数的结果进行比较.直接比较不起作用(如预期的那样),而且InnerXml也不起作用.我正在考虑从InnerXml中删除所有空格并比较它,或者编写我自己的比较来走树,但我不喜欢这两个选项.
在我的ruby on rails应用程序中,我尝试使用Prototype Form.Element.Observer来运行消息中的字符计数.这适用于Firefox/Safari/Chrome,但不适用于IE.在IE上,观察者根本不会开火.有没有修复或不同的方式这样做?
我的ruby标签看起来像这样:
<%= countdown_field('txtmsg[memo]','memo-counter', 141, :frequency => 0.10) %>
Run Code Online (Sandbox Code Playgroud)
countdown_field函数如下所示:
def countdown_field(field_id,update_id,max,options = {})
function = "$('#{update_id}').innerHTML = (#{max} - $F('#{field_id}').length);"
count_field_tag(field_id,function,options)
end
def count_field_tag(field_id,function,options = {})
out = javascript_tag function, :defer => 'defer'
out += observe_field(field_id, options.merge(:function => function))
return out
end
Run Code Online (Sandbox Code Playgroud)
生成的HTML如下所示:
<textarea class="memo-tag text txtmsg-memo" id="txtmsg[memo]" name="txtmsg[memo]" />
<p>You have <span id="memo-counter">...</span> characters left.</p>
<script defer="defer" type="text/javascript">
$('memo-counter').innerHTML = (141 - $F('txtmsg[memo]').length);
</script>
<script type="text/javascript">
new Form.Element.Observer('txtmsg[memo]', 0.1, function(element, value) {
$('memo-counter').innerHTML = (141 …Run Code Online (Sandbox Code Playgroud) 我正在Mac上运行boot2docker.OSX版本10.9.3 boot2docker版本4.3.12 Docker版本0.12.0
boot2docker映像是一个使用virtualbox的vagrant box.我尝试过一些流浪盒(例如stigkj/boot2docker).所有人都表现出这个问题.
如果我ssh到boot2docker映像并查看/etc/resolv.conf它使用的是nameserver 10.0.2.3.
我使用以下命令启动一个简单的docker镜像:
docker run -i -t ubuntu /bin/sh
Run Code Online (Sandbox Code Playgroud)
查看该容器中的/etc/resolv.conf,它使用8.8.8.8和8.8.4.4作为名称服务器.
在docker.logboot2docker vm 的文件中,有这一行:
2014/06/30 15:25:01 Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
Run Code Online (Sandbox Code Playgroud)
根据我的理解,docker应该使用主机的名称服务器.仅当主机使用127.0.0.1作为其名称服务器时,它才应默认为google名称服务器作为备份.
主机没有使用127.0.0.1作为名称服务器,但似乎docker认为它是.有关如何让它正确检测名称服务器的任何建议?
我有一个与jOOQ一起使用的SQLite数据库.当我使用jOOQ的代码生成工具时,它会按预期构建所有表和记录类.但是,所有SQLite INTEGER列都会转换为java.lang.Integer生成的代码中的字段.
问题是SQLite INTEGER's可以存储多达64位的有符号整数,其中java.lang.Integer只有32位有符号整数.
是否有可能告诉jOOQ java.lang.Long这些列使用(64位有符号)?
我已经支持自己进入了一个角落.这是我所拥有的简化版本(在C#中):
class OuterClass
{
private class BadClass
{
private int Data;
public BadClass()
{
Data = 0;
...
}
}
T Build<T>(Object Input)
{
T x = new T();
...
return x;
}
void SomeMethod()
{
BadClass a = Build<BadClass>(anObject);
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我现在必须根据创建BadClass实例的OuterClass实例更改Data的初始值.通常我会使用带有参数的BadClass构造函数:
public BadClass(int Data)
{
this.Data = Data;
...
}
Run Code Online (Sandbox Code Playgroud)
但是我在几个泛型类型中使用BadClass,所以我必须有一个无参数的BadClass构造函数.太糟糕了我不能做这样的事情:
Build<BadClass(5)>(anObject);
Run Code Online (Sandbox Code Playgroud)
那么,当我无法将参数传递给构造函数时,如何给出构造函数的运行时信息?
是否可以创建BadClass类型的运行时实例,为其提供所需的信息,然后在我的泛型类型中使用它?
编辑:我使用List作为示例泛型类型但是并没有完全表达我的困境的深度...
我可以在Build中创建一个测试来调用init函数,如果我正在使用BadClass,但这非常hacky .我希望找到一个稍微不那么难看的方法.
从私有注册表中提取映像的语法是什么?
我正在尝试使用 API 重现以下命令:
docker pull localhost:5000/oillio/my_app:1.0-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
看起来我应该使用 images/create 调用。有4个参数,fromImage、fromSrc、repo、tag、registry。我一生都无法弄清楚如何设置这些参数来重现上述命令。
c# ×4
docker ×2
generics ×2
jenkins ×2
.net ×1
antlr4 ×1
boot2docker ×1
collections ×1
constructor ×1
dns ×1
groovy ×1
java ×1
javascript ×1
jenkins-2 ×1
jooq ×1
long-integer ×1
mstest ×1
prototypejs ×1
ruby ×1
sqlite ×1
unit-testing ×1
xml ×1
xmlnode ×1
xslt ×1