Maven2 inheritance

后端 未结 5 2065
迷失自我
迷失自我 2021-02-12 23:26

If I have a parent pom and want to inherit this to several projects. I usually do this by adding in top of the project ... . What I do

5条回答
  •  伪装坚强ぢ
    2021-02-12 23:57

    I think the important thing to realize is that in a multi-module build, maven always uses the the version that is from your local repository. This applies in multi-module builds too! So when you reference the "parent" pom you're getting the published parent artifact from your local maven repository. So when you do mvn install you repeatedly publish each module to your local repo.

    While developing, your own modules are probably versioned to something like X.X-SNAPSHOT. The reference to the parent-pom is X.X-SNAPSHOT. Don't change these before you're ready to release.

    So a simple case would be: Before initial release all modules are called 1.0-SNAPSHOT. When makin the initial release "golden build", rename all 1.0-SNAPSHOT modules to 1.0. When starting development on the 1.1 release, you change all version numbers to 1.1-SNAPSHOT. And so on...

    The custom is to work with snapshot versions until you're releasing, at which point you update the version numbers everywhere. In the day-to-day development you do not change the version numbers because snapshot-releases get treated differently than hard-version releases.

    Edit: After some thought I think some of your confusion in the "comments" section arises from this: The version number in your pom reflects the overall application version. Any given pom change does not necessarily change the application version number. If you need to track changes in the pom I would suggest you use a source control system. So in the 3 month period you work on version 1.0, it's reasonable to keep the version number at 1.0-SNAPSHOT. In the (for instance) 3 week period you work on 1.1, the version number is 1.1-SNAPSHOT.

提交回复
热议问题