我们有一个模块化项目,大约有10个工件:
parent
+- artifact1
+- artifact2
+- artifact3
+- ...
+- artifact10
Run Code Online (Sandbox Code Playgroud)
此外,一些工件彼此之间存在依赖关系:
artifact1
+-> artifact2
+-> artifact3
+-> ...
+-> artifact10
artifact2
+-> artifact3
artifact4
+-> artifact3
artifact4
+-> artifact5
artifact5
+-> artifact6
Run Code Online (Sandbox Code Playgroud)
我们目前的设置如下:
我们使用带有三个数字的版本控制方案:
<major version>.<minor version>.<patch level>
Run Code Online (Sandbox Code Playgroud)
例如:
0.1.0-SNAPSHOT (a young artifact in development)
0.1.0 (the same artifact once it has been released)
0.1.1 (the same artifact after a hotfix)
Run Code Online (Sandbox Code Playgroud)
问题:
一旦我们更改了工件的版本(例如:0.1.0 => 0.1.1),我们的父工件版本(12.7.3)需要更新,因为它引用了旧的工件版本(0.1.0).由于我们在父POM(0.1.0 => 0.1.1)中更改了此引用,因此我们也需要增加父POM的版本(12.7.3 => 12.7.4).现在,我们的工件仍然引用了先前的父版本(12.7.3),即我们需要再次更新它...这是循环的. …
我正在尝试使用Jackson来序列化具有多态性的实体.序列化的JSON字符串应该包含一个额外的"type"属性,其中"groupA"或"groupB"作为值,但它不是.我的实体看起来像这样:
@Entity
@Table(name = "\"group\"")
@Inheritance(strategy = InheritanceType.JOINED)
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = GroupA.class, name = "groupA"),
@JsonSubTypes.Type(value = GroupB.class, name = "groupB")
})
@JsonSerialize(include = JsonSerialize.Inclusion.ALWAYS)
public class Group implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
// ...
}
@Entity
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSerialize(include = JsonSerialize.Inclusion.ALWAYS)
public class GroupA extends Group …Run Code Online (Sandbox Code Playgroud)