小编Krz*_*soń的帖子

适用于ActionScript的Checkstyle(Flex)

嗨,我目前正在开发一个使用Flex和Java的项目.在Java中,我们很容易使用Checkstyle强制执行编码标准,我们希望为Flex执行此操作.

有没有人知道类似于Checkstyle的工具,它允许编码标准检查?(我已经搜索了这个,但发现只有一个用python编写的项目,并且它被丢弃了)

谢谢

apache-flex actionscript coding-style

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

MIT/Scheme是Windows下的一个简单编译器

是否有可能在Windows中使用mit方案作为简单的编译器(不运行Edwin)?

我想在我选择的wditor中编辑代码并编译它,但我没有找到并选择这样做.

当我执行...

mit-scheme < file.scm
Run Code Online (Sandbox Code Playgroud)

......我得到一个窗口:

"找不到选项的可读默认值--band.
在这些目录中搜索文件all.com:
c:\ local\mit-scheme"

windows scheme mit-scheme

7
推荐指数
2
解决办法
4554
查看次数

如何抑制"使用孵化模块"编译器警告?

如果发生任何编译器警告,我希望我的构建中断,所以我启用了-Werror.稍后我决定使用Java 9 HttpClient,这是一个孵化模块.不幸的是,我现在得到以下编译器警告:

using incubating module(s): jdk.incubator.httpclient
Run Code Online (Sandbox Code Playgroud)

有没有办法在-Werror不打破构建的情况下同时使用孵化模块?理想情况下,我想完全抑制这个警告.

我正在使用Maven来构建我的项目,所以理想情况下答案应该提供一个示例,说明如何将孵化模块作为Maven项目的一部分进行编译.

java compiler-warnings maven java-9 java-http-client

7
推荐指数
0
解决办法
379
查看次数

如何在Java http客户端中自定义"主机"头

这是我的代码:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://127.0.0.1:8081/"))
    .header("Host", "test.example.com")
    .build();
client.send(request, HttpResponse.BodyHandlers.ofString());
Run Code Online (Sandbox Code Playgroud)

结果我看到上面的代码发送:

GET / HTTP/1.1
Connection: Upgrade, HTTP2-Settings
Content-Length: 0
Host: 127.0.0.1:8081
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Upgrade: h2c
User-Agent: Java-http-client/10
Host: test.example.com
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它会发送两个Host标头(URI和我指定的Host标头),但我希望它发送我指定的标头,而不是URI中的标头.这个客户有可能吗?

编辑:在Java 11中,它变得更糟(你需要将client.send行改为:)client.send(request, HttpResponse.BodyHandlers.ofString());:

java.lang.IllegalArgumentException: restricted header name: "Host"
Run Code Online (Sandbox Code Playgroud)

如何自定义该标头(测试虚拟主机所需)?

我也试过setHeader并得到完全相同的问题(双头Host或异常).

编辑:我报告了一个JDK错误.

java http2 java-10 java-http-client java-11

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

Java HTTP 客户端是否处理压缩

我试图在新的 Java HTTP 客户端中找到任何关于压缩处理的提及,但失败了。是否有内置配置来处理例如gzipdeflate压缩?

我希望有一个BodyHandler例如这样的东西:

HttpResponse.BodyHandlers.ofGzipped(HttpResponse.BodyHandlers.ofString())
Run Code Online (Sandbox Code Playgroud)

但我没有看到。我也没有看到任何配置HttpClient。我是不是找错地方了,还是故意没有实现并推迟支持库?

java java-http-client java-11

7
推荐指数
3
解决办法
4224
查看次数

C 中的数字分隔符

'到目前为止,我已经能够在我的 C 项目中使用数字分隔符。它们都已经用MSVC编译器编译过了,没有任何问题。

我刚刚改为使用 GCC 编译器,它不允许这些数字分隔符,并且当我使用它们时会抛出错误。我认为原因是因为 Visual Studio 对 C 和 C++ 使用相同的编译器,并且在 C++14 中(我相信),'允许使用数字分隔符。

如果是这种情况,GCC 中是否有可用的数字分隔符?当使用二进制的 64 位寄存器值时,这些分隔符确实很有帮助......

c gcc

6
推荐指数
2
解决办法
4383
查看次数

Jenkins管道 - 如何遍历列表

我需要从管道中的文件中读取值.我正在使用split()将它们放入一个数组中.我需要将它们放入Arraylist中,所以我使用的是Arrays.asList().我遇到的问题是我无法使用size()length()方法,所以我不能做一个for循环,如

for (ii = 0; ii < var.length; ii++)
Run Code Online (Sandbox Code Playgroud)

要么

for (ii = 0; ii < var.size; ii++)
Run Code Online (Sandbox Code Playgroud)

因为我得到错误:unclassified field java.util.Arrays $ ArrayList length

所以我尝试在每个循环中使用a,但是当我在finally块中执行某些操作(例如ls命令)时,它只迭代1次.但是,如果我只是运行命令'echo',它将按照它应该的方式迭代每个元素.有关如何修改我的代码以使其在使用任何命令时对列表中的每个元素进行迭代的任何建议吗?

工作正常....

node{
    wrap([$class: 'ConfigFileBuildWrapper', managedFiles: [[fileId: 'dest_hosts.txt', targetLocation: '', variable: 'DEST_HOST']]]) {
        HOST = Arrays.asList(readFile(env.DEST_HOST).split("\\r?\\n"))
        deploy(HOST)
    }
}

@NonCPS
def deploy(host){
    for (String target : host){
        try {
            echo target
        }
        finally {
           echo target
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT(为每个元素迭代):

[Pipeline] node
Running …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins delivery-pipeline jenkins-pipeline

6
推荐指数
2
解决办法
3万
查看次数

解析Jenkins管道中的pom.xml文件

我试图在jenkins管道插件中解析我的pom.xml.我打算修改它并保存回来.

我的问题是它给了我"未分类的字段java.lang.String版本"

我的代码如下:

@NonCPS
groovy.util.Node getPom(path) {
  new XmlParser().parseText(readFile(path)).version
}
node {
  groovy.util.Node pomNode = getPom("pom.xml")
  println pomNode
}
Run Code Online (Sandbox Code Playgroud)

这里讨论了类似的问题:在Jenkins管道中解析XML文件

groovy maven jenkins jenkins-pipeline

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

Java9 HttpClient SSLHandshakeException

我试图从Java 9测试新的HttpClient.出于测试目的,我使用的是https://jsonplaceholder.typicode.com提供的api .但是,我收到握手异常,不知道原因.

我正在运行的代码:

 private final String TEST_URI = "https://jsonplaceholder.typicode.com/posts";

    @Test
    public void shouldReturnStatusOKWhenSendGetRequest() throws IOException, InterruptedException, URISyntaxException {
        HttpRequest request = HttpRequest.newBuilder()
                .uri(new URI(TEST_URI))
                .GET()
                .build();
        HttpResponse<String> response = HttpClient.newHttpClient()
                .send(request, HttpResponse.BodyHandler.asString());
        assertThat(response.statusCode(), equalTo(HttpURLConnection.HTTP_OK));
    }
Run Code Online (Sandbox Code Playgroud)

我收到一个例外:

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at java.base/sun.security.ssl.Alerts.getSSLException(Alerts.java:198)
    at java.base/sun.security.ssl.Alerts.getSSLException(Alerts.java:159)
    at java.base/sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1905)
    at java.base/sun.security.ssl.SSLEngineImpl.processInputRecord(SSLEngineImpl.java:1140)
    at java.base/sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1020)
    at java.base/sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:902)
    at java.base/sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:680)
    at java.base/javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:626)
    at jdk.incubator.httpclient/jdk.incubator.http.AsyncSSLDelegate.unwrapBuffer(AsyncSSLDelegate.java:476)
    at jdk.incubator.httpclient/jdk.incubator.http.AsyncSSLDelegate.handshakeReceiveAndUnWrap(AsyncSSLDelegate.java:395)
    at jdk.incubator.httpclient/jdk.incubator.http.AsyncSSLDelegate.doHandshakeImpl(AsyncSSLDelegate.java:294)
    at jdk.incubator.httpclient/jdk.incubator.http.AsyncSSLDelegate.doHandshakeNow(AsyncSSLDelegate.java:262)
    at jdk.incubator.httpclient/jdk.incubator.http.AsyncSSLDelegate.connect(AsyncSSLDelegate.java:233)
    at jdk.incubator.httpclient/jdk.incubator.http.AsyncSSLConnection.connect(AsyncSSLConnection.java:78)
    at jdk.incubator.httpclient/jdk.incubator.http.Http2Connection.<init>(Http2Connection.java:272)
    at jdk.incubator.httpclient/jdk.incubator.http.Http2ClientImpl.getConnectionFor(Http2ClientImpl.java:108)
    at jdk.incubator.httpclient/jdk.incubator.http.ExchangeImpl.get(ExchangeImpl.java:86)
    at jdk.incubator.httpclient/jdk.incubator.http.Exchange.establishExchange(Exchange.java:257) …
Run Code Online (Sandbox Code Playgroud)

java ssl java-9 tls1.2 java-http-client

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

Java是否有为常见端口号定义的常量?

是否有一个类已定义常见端口号的常量,如80,443,21?

只有这样,现在我发现使用getDefaultPort上,有一个网址http,httpsftp模式,但它看起来过度只得到一个常数.

我问,因为我不想在代码周围抛出一堆魔术数字,我认为应该有一个地方有这些常数(例如我们现在有一个UTF8).

java

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