小编Rod*_*aki的帖子

如何在Gradle中为依赖项版本定义变量

我目前正在尝试将Maven项目迁移到Gradle

在我的Maven版本中,我的所有依赖版本都在我的 pom中列出如下:

<properties>
    <spring.version>4.2.3.RELEASE</spring.version>
    <spring.boot.version>1.3.3.RELEASE</spring.boot.version>
    ...
</properties>
Run Code Online (Sandbox Code Playgroud)

然后我可以在任何子模块中定义这样的依赖:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我试图做同样的事情Gradle,因为我的一些模块共享依赖的版本是这样的,我不希望修改一个以上的地方,如果我想升级Spring或做类似的操作.

我得到的最接近的是:

dependencies {
    ext.springVersion = '4.2.3.RELEASE'
    compile "org.springframework:spring-jdbc:$springVersion"
}
Run Code Online (Sandbox Code Playgroud)

然而,这仍然不起作用.在Gradle中实现此目的的推荐方法是什么?或者Gradle对待这种方式有何不同?也许我对Maven的看法仍然太多,无法看到另一种解决方案.

请记住,对Gradle的尝试并不完全 是我想要的.我希望能够在一个单独的文件中定义依赖项,而不是直接在将使用它的文件上.

dependency-management gradle

34
推荐指数
4
解决办法
2万
查看次数

什么是默认的Akka调度程序配置值?

在Akka文档中,它指出如果未配置调度程序,将使用默认调度程序.默认调度程序的属性是什么,即parallelism-min,parallelism-factor,parallelism-max等?

java scala dispatcher akka

29
推荐指数
1
解决办法
1万
查看次数

Scala的groupBy身份如何运作?

我在浏览并发现了一个关于String按字符分组的问题,例如:

输入:

"aaabbbccccdd"
Run Code Online (Sandbox Code Playgroud)

会产生以下输出:

"aaa"
"bbb"
"cccc"
"ddd"
Run Code Online (Sandbox Code Playgroud)

我发现了这个建议:

val str = "aaabbbccccdd"[
val list = str.groupBy(identity).toList.sortBy(_._1).map(_._2)
Run Code Online (Sandbox Code Playgroud)

这个identity家伙让我很好奇.我发现它的定义PreDef如下:

identity[A](x: A): A
Run Code Online (Sandbox Code Playgroud)

所以基本上它会返回给出的任何东西,对吧?但这怎么适用于电话groupBy

我很抱歉,如果这是一个基本问题,那就是功能性编程仍然让我的脑子有点紧张.如果有任何信息可以让我更清楚,请告诉我

scala

18
推荐指数
3
解决办法
9173
查看次数

如何强制使用命名空间前缀?

我正在尝试使用SOAP Web服务,但是WSDL有点坏了,所以我必须做一些自定义node-soap.

我想要的理想SOAP信封就是这个:

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <Body>
        <getImagesDefinition xmlns="http://services.example.com/"/>
    </Body>
</Envelope>
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是nodejs我必须调用服务的代码:

var soap = require('soap');
var url = 'http://www.example.com/services/imagesizes?wsdl';

soap.createClient(url, function(err, client) {

    client.setEndpoint('http://www.example.com/services/imagesizes');
    client.getImagesDefinition(null, function(err, result) {
        console.log(result);
    });
    console.log(client.lastRequest)

}); 
Run Code Online (Sandbox Code Playgroud)

我必须手动设置端点,因为它在WSDL文件中被破坏了

打印时得到的信封client.lastRequest是这样的:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
               xmlns:tns="http://services.example.com/">
    <soap:Body>
        <getImagesDefinition />
    </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

我知道如果我可以强制主体上的命名空间前缀<tns:getImagesDefinition />而不是<getImagesDefinition />请求完美地工作.

有什么办法让我强行吗?

我阅读文档说这tns是一个默认忽略的命名空间,所以我尝试通过这样做来改变它:

var options = {
    ignoredNamespaces: {
        namespaces: [],
        override: true
    }
}
Run Code Online (Sandbox Code Playgroud)

并将该对象发送到该soap.createClient方法,但我发现信封没有区别.

无论如何我强迫这个?或者获得理想的SOAP信封?

谢谢!

soap node.js node-soap

11
推荐指数
2
解决办法
5454
查看次数

为什么我应该使用createComponent而不是自己创建实例?

这更像是一个概念性问题.

我必须处理必须创建动态的功能h:dataTable.每当我创建一个组件时,我都做了类似的事情:

DataTable table = (DataTable) FacesContext.getCurrentInstance().getApplication()
                      .createComponent(DataTable.COMPONENT_TYPE);
Run Code Online (Sandbox Code Playgroud)

用它FacesContext来为我创造一切.

但是,我可以简单地这样做:

DataTable table = new DataTable();
Run Code Online (Sandbox Code Playgroud)

我在第一种方式中做到这一点的原因是我在开发时阅读的所有教程和材料都是这样做的,但我从来没有得到明确答案的原因.

有没有一个实际的原因,为什么第一个优于第二个?

jsf-2

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

从String中提取时区

我知道有关于此的几个问题.但是我遇到了特定日期模式的问题.这是一个例子:

20130401100000[-03:EST]
Run Code Online (Sandbox Code Playgroud)

我跟你说话是-03因为根据SimpleDateFormat文件它应该有4位数.我得到的最接近的模式是:

yyyyMMddHHmmss'['Z':'z']'
Run Code Online (Sandbox Code Playgroud)

但由于2位数它只是不起作用.这是我用于测试的代码示例:

public static void main(String[] args) throws ParseException {
    String input = "20130401100000[-03:EST]";

    DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss'['Z':'z']'");
    df.setTimeZone(TimeZone.getTimeZone("GMT"));    

    System.out.println(df.format(new Date()));
    System.out.println(df.parse(input));
}
Run Code Online (Sandbox Code Playgroud)

当我打印new Date()我得到这个:

20130528155734[+0000:GMT]
Run Code Online (Sandbox Code Playgroud)

但是当我尝试解析时,input我得到以下异常:

Exception in thread "main" java.text.ParseException: Unparseable date: "20130401100000[-03:EST]"
at java.text.DateFormat.parse(DateFormat.java:337)
at Teste.main(Teste.java:17)
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能用正确的解析input成一个?DateTimeZone

java timezone simpledateformat

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

如何在多个字段上运行自动完成 $search?

文档指出path需要是一个string而不是一个字符串数组。我只是想确认这实际上是唯一的可能性,如果在任何一种情况下都有推荐的方法来做到这一点。

例如,我想搜索(带有自动完成),我的电影文本"hammer"上都titleplot

在当前场景中,我可以通过titleplot轻松实现搜索。但是如果我尝试对两者都这样做,制作path一个字符串数组,这在其他运算符上是可以接受的,我会收到一个错误

mongodb-atlas mongodb-atlas-search

5
推荐指数
1
解决办法
627
查看次数

正确JNDI @Resource(名称)

我有以下类用于获取JDBC连接:

package util;

import java.sql.Connection;
import java.sql.SQLException;

import javax.annotation.Resource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class OracleConnection implements AutoCloseable{

private final String oracle_DS_CTX = "java:jboss/oracleDS"; 

    //  @Resource(name="java:jboss/oracleDS")
    //  private DataSource ds; //doesn't work   

    private Connection _conn;   

    public OracleConnection() throws SQLException, NamingException{

            Context ctx = new InitialContext();
            DataSource ds = (DataSource) ctx.lookup(oracle_DS_CTX);
            _conn = ds.getConnection();
    }

    @Override
    public void close() throws Exception {
            if(_conn != null){
                    _conn.close();
            }
    }

    public Connection getConnection() throws SQLException {
            return _conn;
    } …
Run Code Online (Sandbox Code Playgroud)

java jboss jndi

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

如何在伪元素中调整图像大小?

我正试图用伪元素做一些技巧.

我正在展示一个排名,我希望冠军能够在胜利者的顶部展示,在图像所在的角落倾斜45度.但是图像太大了,有没有办法让我重新调整伪元素上添加的图像?

我只有这个div:

<div class='box'></div>
Run Code Online (Sandbox Code Playgroud)

有了这个CSS:

.box {
    width: 50px;
    height: 50px;
    float: left;
    border: 1px solid #000;
    position:absolute;
    top: 100px;
    left: 100px;
}

.box::after{
    content: url(URL_OF_IMAGE);
    position: absolute;
    top: -10px;    
    right: -10px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
}
Run Code Online (Sandbox Code Playgroud)

我在JSFiddle上做了一个例子:http://jsfiddle.net/GEtds/

我试图改变heightwidth,但没有效果.

html5 css3 pseudo-element css-content

4
推荐指数
2
解决办法
4811
查看次数

如何使用流API在Java 8中映射?

好的,我有一个List<Person>.每个人Person都有一个List<String>该人拥有的电话号码列表.

所以这是基本结构:

public class Person {

    private String name;
    private List<String> phoneNumbers;

    // constructors and accessor methods

}
Run Code Online (Sandbox Code Playgroud)

我想创建一个Map<String, Person>键,其中键是该人拥有的每个电话号码,值是实际的人.

所以要更好地解释.如果我有这个List<Person>:

Person bob = new Person("Bob");
bob.getPhoneNumbers().add("555-1738");
bob.getPhoneNumbers().add("555-1218");

Person john = new Person("John");
john.getPhoneNumbers().add("518-3718");
john.getPhoneNumbers().add("518-3115");
john.getPhoneNumbers().add("519-1987");

List<Person> list = new ArrayList<>();
list.add(bob);
list.add(john);
Run Code Online (Sandbox Code Playgroud)

我调用了这个方法.它会给我以下内容Map<String, Person>

Map<String, Person> map = new HashMap<>();
map.put("555-1738", bob);
map.put("555-1218", bob);

map.put("518-3718", john);
map.put("518-3115", john);
map.put("519-1987", john);
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用streamAPI 实现这一点,因为我已经知道我将如何使用for循环等.

java java-8 java-stream

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