我一直在使用maven2和hudson进行持续集成,但我发现Eclipse和Maven并不能很好地协同工作.当然有一个插件,但是将maven项目混合成eclipse喜欢的东西并且构建时间和单元测试太长时间是一种胡思乱想.我正在考虑切换回纯粹的日食项目,没有蚂蚁,也没有涉及maven.使用无限插件和可能的JavaRebel代理,它将为我提供一个非常快速的构建 - 部署 - 测试周期.但是我仍然希望自动和测试,所以:
如何使用与Eclipse项目的持续集成?
是否有命令行方式来做到这一点?
是否有一个本机支持它的构建服务器?
eclipse build-automation continuous-integration javarebel infinitest
我正在尝试编写一个SVG页面,其中我们有一个图标,右边是一个动态文本(这两个之间的距离是固定的).图标具有固定的宽度和高度,但文本的宽度可能不同.
两个元素都被一个组包围,它们应该在那里居中.该组还包含一个也居中的自由文本.
.-------------------------------------.
| |
| some text |
| |
| .----. |
| | | blah blah blah blah blah |
| `----´ |
`-------------------------------------´
.-------------------------------------.
| |
| some text |
| |
| .----. |
| | | blah blah blah |
| `----´ |
`-------------------------------------´
Run Code Online (Sandbox Code Playgroud)
有人欣赏我的ASCII技能吗?;)
我的方法是将图标和文本编译成一个组,然后将其中心放入父组.标题文本也是.
我读到我可以将文本集中在一个组中,但我找不到对齐图像或实际组的方法.
<g id="MainGroup">
<text id="InfoText" x="90" y="0" width="320" text-anchor="middle" font-size="20" fill="#FFFFFF"/>
<g x="90" y="0" width="320" text-anchor="middle">
<image id="UserIcon" x="0" y="25" width="48" height="48"/>
<text id="Username" x="58" y="55" font-size="22" fill="#FFFFFF"/> …
Run Code Online (Sandbox Code Playgroud) 显然ResourceBundle
需要在找到的文件中使用类似语法的属性文件.
我们有一种情况,我们想要将整个文件(在我们的例子中是HTML文件)用作"值".这意味着我们没有这样的密钥.好吧,也许文件名可以作为密钥.
这是一个目录树:
src/
main/
resources/
html/
content.html
content_de.html
content_fr.html
content_es.html
order.html
order_de.html
order_fr.html
order_es.html
Run Code Online (Sandbox Code Playgroud)
现在我们需要逻辑来根据当前的语言环境找到正确的文件.如果当前的语言环境是德语,我正在查找html/content.html
文件,它应该找到html/content_de.html
.它不一定需要立即加载它.Java中是否存在一些现有机制?我们需要手动完成吗?
由于某些限制,我们目前正计划不使用任何第三方库.因此,如果Java 6 SE中有可用的东西,它将是我们的最佳选择; 但是,如果您知道第三方库,请随意命名.
编辑#1:一个明显的解决方案是使用密钥messages.properties
来命名该HTML文件.虽然这会起作用,但从长远来看它可能会成为一个痛苦(除此之外,我不认为这会解决我们所有的问题).
编辑#2:我忘了说这是一个桌面应用程序.
对于开发,我ResourceBundle
用来直接从IDE中的resources-directory读取UTF-8编码的属性文件(我在Eclipse的文件属性中设置该文件)(native2ascii用于生产的方式),例如:
menu.file.open.label=&Öffnen...
label.btn.add.name=&Hinzufügen
label.btn.remove.name=&Löschen
Run Code Online (Sandbox Code Playgroud)
由于这会在使用非ASCII字符时导致字符编码问题,我以为我会满意:
ResourceBundle resourceBundle = ResourceBundle.getBundle("messages", Locale.getDefault());
String value = resourceBundle.getString(key);
value = new String(value.getBytes(), "UTF-8");
Run Code Online (Sandbox Code Playgroud)
嗯,它确实适用于小写德语变音符号,但不适用于大写的变音符号,ß
也不起作用.这是读取getString(key)
的值和转换后的值new String(value.getBytes(), "UTF-8")
:
&Löschen => &Löschen
&Hinzufügen => &Hinzufügen
&Ã?ber => &??ber
&SchlieÃ?en => &Schlie??en
&Ã?ffnen... => &??ffnen...
Run Code Online (Sandbox Code Playgroud)
最后三个应该是:
&Ã?ber => &Über
&SchlieÃ?en => &Schließen
&Ã?ffnen... => &Öffnen...
Run Code Online (Sandbox Code Playgroud)
我想我离真相不太远,但我在这里错过了什么?
谷歌发现了类似的东西,但仍然没有答案.
编辑:多一点代码
假设我有两节课
class A {
private String aStr;
@Override
public int hashCode() {
return Objects.hash(aStr);
}
}
Run Code Online (Sandbox Code Playgroud)
和
class B extends A {
private String bStr;
@Override
public int hashCode() {
return Objects.hash(bStr);
}
}
Run Code Online (Sandbox Code Playgroud)
作为类的领域A
中仍然字段B
需要被散列,我该如何正确地包含的字段的哈希码A
的B.hashCode()
?这些都是?
Objects.hash(bStr) + super.hashCode();
// these generate a StackOverflowError:
Objects.hash(bStr, (A) this);
Objects.hash(bStr, A.class.cast(this));
Run Code Online (Sandbox Code Playgroud) 我正在尝试启动并运行 Spring-Boot 服务器,它通过 SSL 提供一些安全性。我按照本指南的第1 步和第 2 步获得了自签名证书,并且能够通过https
. 该application.properties
如下所示:
server.port=8443
server.ssl.keyStore=classpath:keystore.p12
server.ssl.keyStorePassword=youd_want_to_know
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=hs
Run Code Online (Sandbox Code Playgroud)
keystore.p12
是用
$ keytool -genkey -alias hs -storetype PKCS12 \
-keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
Run Code Online (Sandbox Code Playgroud)
除了密码我没有输入任何内容,所有字段都是“未知”。
但是,浏览器中的锁不是绿色的。详细信息说
站点的证书链 (net::ERR_CERT_AUTHORITY_INVALID) 存在问题。
优点:
安全 TLS 连接
与此站点的连接使用了强大的协议版本和密码套件。
安全资源
此页面上的所有资源均安全提供。
我猜在纯文本中,这意味着数据是安全传输的,但是浏览器对证书并不完全满意,因为它无法跟踪真实性。因此,我知道这不值得用于生产(现在不需要)。
但是,因为我拥有服务器并且知道我自己创建了自签名证书,所以对我来说安全吗?或者有没有办法把它变成浏览器满意的证书?我需要做什么才能使其工作以及 Sprint-Boot 配置是什么样的?
有一个教程视频介绍了Spring MVC 3.0.在演示项目中,他们使用以下目录结构:
<proj>
src
main
webapp
WEB-INF
spring
appServlet
controllers.xml
servlet-context.xml
root-context.xml
Run Code Online (Sandbox Code Playgroud)
假设我有一个Maven支持的项目,我想用Spring的配置编写JUnit测试.目前我们使用JUnit 4.8.2.这显然需要加载上面列出的三个文件.
在测试中我可以使用注释
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath*:/WEB-INF/spring/**/*.xml")
Run Code Online (Sandbox Code Playgroud)
但是,它找不到XML文件.我看了一下classpath并注意到,默认情况下只包括<proj>/target/classes
和<proj>/target/test-classes
.
一个显而易见的解决方案是为类路径添加正确的路径,但我不知道这是不是春天的人想到的.
因此,我的问题是:我需要做什么来加载配置文件,同时让它看起来好像我是使用Spring的全程编码器?
如何关闭IME功能EditText
?
或者:如何避免显示IME键盘?
我有一个布局,我的特殊键盘位于下方,EditText
因此无需显示IME.请理解我不能将我的键盘实现为IME,因为它特定于此EditText
,并且在任何其他环境中使用它只会导致问题.
我试着用
getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)
在onCreate()
活动中,但在这种情况下似乎没有做任何事情.
我在Eclipse中使用的是无限的,我和JUnit有一个奇怪的现象.
我有使用org.apache.http.HttpResponse.getEntity()
和的代码org.apache.http.entity.StringEntity
.JUnit测试如下所示:
@Test
public void convertEncodedContentToString() throws UnsupportedEncodingException {
HttpResponse httpResponseMock = Mockito.mock(HttpResponse.class);
Mockito.when(httpResponseMock.getEntity()).thenReturn(new StringEntity("huiäöüß@€", HTTP.UTF_8));
Assert.assertEquals("huiäöüß@€", parser.convertContentToString(httpResponseMock));
}
Run Code Online (Sandbox Code Playgroud)
所有源文件都以UTF-8存储.
如果我让JUnit执行此方法,它可以正常工作.
但是,如果无限运行此测试,它会抱怨断言失败.
ComparisonFailure (expected:<hui[äöüß@€]> but was:<hui[äöüß@€]>) in ResponseBodyParserFactoryTest.convertEncodedContentToString
Run Code Online (Sandbox Code Playgroud)
显然存在字符编码问题.
由于无限接近没有选项,我不知道如何帮助最有效地运行此测试.有人可以帮帮我吗?
我试图用@RequestMapping
同consumes
-元素.阅读API文档,它可以在Content-Type
请求的头文件上工作.但是,使用
@RequestMapping(consumes = "application/x-www-form-urlencoded;charset=UTF-8", value = "/test")
public void test() {
:
}
Run Code Online (Sandbox Code Playgroud)
要么
@RequestMapping(consumes = "application/x-www-form-urlencoded;charset=ISO-8859-1", value = "/test")
public void test() {
:
}
Run Code Online (Sandbox Code Playgroud)
并没有什么区别.请求中的标头可能看起来像
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Run Code Online (Sandbox Code Playgroud)
要么
Content-Type: application/x-www-form-urlencoded
Run Code Online (Sandbox Code Playgroud)
test()
将在所有四个可能的星座中被召唤.
但是,charset
如果我指定的话,这可以证明Spring看到并尝试使用-part
@RequestMapping(consumes = "application/x-www-form-urlencoded;charset=UTF-x8", value = "/test")
public void test() {
:
}
Run Code Online (Sandbox Code Playgroud)
我在web-app的启动(!)期间遇到异常:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0': Initialization of bean failed;
nested exception is java.nio.charset.UnsupportedCharsetException: UTF-x8
Run Code Online (Sandbox Code Playgroud)
请注意,关于produces
-element 的文档也没有提到使用 …
java ×3
eclipse ×2
infinitest ×2
junit ×2
spring ×2
alignment ×1
android ×1
hash ×1
hashcode ×1
httprequest ×1
java-7 ×1
javarebel ×1
keyboard ×1
self-signed ×1
spring-boot ×1
svg ×1
unicode ×1