Java代码的构建过程当前正在生成名称没有版本号的工件。
例如:java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.support.design.internal.BottomNavigationMenuView.getChildAt(int)' on a null object reference
我们目前正处于CI / CD管道的构建阶段
在CI / CD管道的构建阶段,通过maven构建生成的所有工件都没有后端服务的版本号
构建特定jar所需的从属工件仅存储在JFrog工件中
1) 在CI / CD管道的Build / QA / prod阶段是否需要对工件进行版本控制?
2)
是否需要将所有工件存储在JFrog工件中?因为只有serial-framework-SNAPSHOT.jar
在Maven构建期间需要的从属工件才存储在JFrog
答案 0 :(得分:1)
版本控制有何帮助:
是否存储所有工件?
我的个人经验:仅存储与其他工件相关的工件。例如,像Libs。如果您使用的是Docker容器,则应考虑对您在每次构建中生成的Docker映像进行版本控制。
答案 1 :(得分:1)
snukone在第一个答案中对版本进行了很好的解释。请注意以下几点,这可能对版本控制很有帮助
对于开发,请始终遵循版本“ versionNumber-SNAPSHOT”(大写字母) 例如:-1.0-快照
2)对于test / prod分支,请遵循“ versionNumber-RELEASE”版本 例如:-1.0 –发布
a)快照是可变的,因此用于开发目的。
b)版本是不可变的。提交后,我们将无法覆盖 人为的。因此,发行版用于更高的环境。
c)快照捕获正在进行的工作,并在开发过程中使用。快照工件具有版本号(例如“ 1.3.0”或“ 1.3”)和时间戳。例如,commons-lang 1.3.0的快照工件可能具有名称commons-lang-1.3.0-20090314.182342-1.jar
因此,如果您使用的是“ serial-framework-SNAPSHOT”,它将在您的人工产品中存储为“ serial-framework-version-timestamp.jar”。
类似地,如果您正在使用“ serial-framework-RELEASE”,它将在您的人工制品中存储为“ serial-framework-version.jar”。