小编Ale*_*ler的帖子

Maven父POM:循环依赖

我们有一个模块化项目,大约有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)

我们目前的设置如下:

  • parent是包含父POM的工件.
  • 这个父POM定义了所有必要的依赖项(如Spring,JPA,...).
  • 我们所有的工件也都定义了.
  • 我们的工件将父工件引用为 - 说明显而易见的 - 父级.
  • 只有父POM定义版本.所有其他POM都没有.

我们使用带有三个数字的版本控制方案:

<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),即我们需要再次更新它...这是循环的. …

circular-dependency dependency-management maven

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

杰克逊:JsonTypeInfo不添加属性

我正在尝试使用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)

polymorphism json jpa spring-mvc jackson

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