我正在使用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.
我的.m2存储库中的每个工件的父pom和/或子pom是否具有指定的版本,或者它是project.version
我是否应该将project.version指定为父pom中的属性.maven文档声明project.version可以通过defualt获得.我也试过mvn install post删除了我的父pom中的project.version属性但是生成的工件仍然在我的.m2文件夹中的版本为{project.version}而不是实际的版本
如何在我的父pom中设置版本并让我所有的孩子pom具有相同的版本.例如,我想在workorder pom中设置一个版本,而workorder-client pom也应该继承相同的版本.
当我的交易对手可以是时,我如何null使用 Java 8 处理以下代码中的检查null。counterParty我只想在它有值时设置,如果它为空则不设置。
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) 当我运行 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) 我使用 jackson 和 spring 将 Java 序列化/反序列化为 JSON,反之亦然。
当 Jackson 将我的 Java 对象序列化为 JSON 时,十进制值为零的双精度值将被去除,而具有十进制值的双精度值将被考虑在内。例如:550.77 正确序列化为 550.77,而 440.00 则序列化为 440(等于整数)。
如何确保保留以 .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) 我需要一个线程安全的并发列表,同时最适合迭代,并且应该返回确切的大小.我想存储商品的竞价出价.所以我希望能够
我计划将它放在
ConcurrentHashMap<Item, LinkedList<ItemBid>>- LinkedList不是线程安全的但返回确切的大小
ConcurrentHashMap<Item, ConcurrentLinkedQueue<ItemBid>>- concurrentlinked队列是线程安全的但不保证返回确切的大小
有没有其他更好的集合将解决上述4点并且是线程安全的.
java ×3
concurrency ×1
docker ×1
jackson ×1
java-8 ×1
java-stream ×1
json ×1
maven ×1
maven-3 ×1
rest ×1