小编ser*_*rah的帖子

Maven - 版本化父pom和子pom继承父pom版本

我正在使用Maven 3.x,我的父pom和child pom中有以下结构.

父母pom

<groupId>com.mygoogle.sample</groupId>
<artifactId>workorder</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
    <project.version>1.0-SNAPSHOT</project.version>             
</properties>
Run Code Online (Sandbox Code Playgroud)

我有一个孩子pom如下

<parent>
 <groupId>com.mygoogle.sample</groupId>
 <version>${project.version}</version>
 <artifactId>workorder</artifactId>     
</parent>
<artifactId>workorder-client</artifactId>
<packaging>jar</packaging>
Run Code Online (Sandbox Code Playgroud)

当我使用mvn install构建我的工件时,我看到jars在我的.m2文件夹中构建,但project.version没有替换为实际版本,即1.0-SNAPSHOT.

  1. 我的.m2存储库中的每个工件的父pom和/或子pom是否具有指定的版本,或者它是project.version

  2. 我是否应该将project.version指定为父pom中的属性.maven文档声明project.version可以通过defualt获得.我也试过mvn install post删除了我的父pom中的project.version属性但是生成的工件仍然在我的.m2文件夹中的版本为{project.version}而不是实际的版本

  3. 如何在我的父pom中设置版本并让我所有的孩子pom具有相同的版本.例如,我想在workorder pom中设置一个版本,而workorder-client pom也应该继承相同的版本.

maven-3 maven

3
推荐指数
1
解决办法
3549
查看次数

如果 java 流中不为 null,则设置一个值

当我的交易对手可以是时,我如何null使用 Java 8 处理以下代码中的检查nullcounterParty我只想在它有值时设置,如果它为空则不设置。

 public static Iterable<? extends Trade> buildTrade (final List<Trade> trade) {
    return () -> trade.stream()
                .map(trade -> Trade.newBuilder()
                    .setType(trade.type())              
                    .setUnit(trade.unit())
                    .setCounterParty(trade.counterParty())                  
                    .build())
                .iterator();
    }
Run Code Online (Sandbox Code Playgroud)

java functional-programming java-8 java-stream

2
推荐指数
1
解决办法
5546
查看次数

docker compose 中卷未定义的问题

当我运行 docker-compose up 时出现以下错误,请指出为什么我收到此错误

服务“mysqldb-docker”引用未定义的卷 mysqldb:无效的撰写项目

另外,有没有办法将 CLI 中的 $ENV 值传递给 docker-compose up ,目前我有一个 ENV 变量指定 dev、uat 或 prod,我用它来指定数据库名称。除了为此明确创建 .env 文件之外,还有更好的替代方法吗

 version: '3.8'
    services:
      mysqldb-docker:
        image: '8.0.27'
        restart: 'unless-stopped'
        ports:
          - "3309:3306"
        environment:
          - MYSQL_ROOT_PASSWORD=root
          - MYSQL_PASSWORD=root
          - MYSQL_DATABASE=reco-tracker-$ENV
        volumes:
          - mysqldb:/var/lib/mysql
      reco-tracker-docker:
        image: 'reco-tracker-docker:v1'
        ports:
          - "8083:8083"
        environment:
          - SPRING_DATASOURCE_USERNAME=root
          - SPRING_DATASOURCE_PASSWORD=root
          - SPRING_DATASOURCE_URL="jdbc:mysql://mysqldb-docker:3309/reco-tracker-$ENV"
        depends_on: [mysqldb-docker]
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

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

为什么 Jackson 序列化时省略了小数点为零的 Double?

我使用 jackson 和 spring 将 Java 序列化/反序列化为 JSON,反之亦然。

当 Jackson 将我的 Java 对象序列化为 JSON 时,十进制值为零的双精度值将被去除,而具有十进制值的双精度值将被考虑在内。例如:550.77 正确序列化为 550.77,而 440.00 则序列化为 4​​40(等于整数)。

如何确保保留以 .00 作为十进制值的双精度序列化?

@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility =  Visibility.ANY, setterVisibility = Visibility.NONE)
public class Price extends DTO {

private static final long serialVersionUID = -3986616090347452845L;


private Double _exclVat;

private Double _inclVat;


public Price(){
    super();
}

public Price(Double pExclVat, Double pInclVat) {
    this();
    _exclVat = pExclVat;
    _inclVat = pInclVat;
}


public Double getExclVat() {
    return _exclVat;
}

public void setExclVat(Double pExclVat) …
Run Code Online (Sandbox Code Playgroud)

java rest json jackson

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

并发LinkedList与ConcurrentLinkedQueue

我需要一个线程安全的并发列表,同时最适合迭代,并且应该返回确切的大小.我想存储商品的竞价出价.所以我希望能够

  1. 检索项目的确切出价数
  2. 为商品添加出价
  3. 检索给定项目的所有出价.
  4. 删除商品的出价

我计划将它放在 ConcurrentHashMap<Item, LinkedList<ItemBid>>- LinkedList不是线程安全的但返回确切的大小 ConcurrentHashMap<Item, ConcurrentLinkedQueue<ItemBid>>- concurrentlinked队列是线程安全的但不保证返回确切的大小

有没有其他更好的集合将解决上述4点并且是线程安全的.

java concurrency multithreading

0
推荐指数
1
解决办法
9319
查看次数