小编Asg*_*ard的帖子

Maven分支更新项目版本自动化发布工作流程

关于Maven自动化项目版本控制,我有一个难以解决的案例,我希望我会根据您的经验和建议找到合适的解决方案.

问题是这样的:我们有一个巨大的mavenized java产品,它包含~200个非常相互依赖的不同项目.我们同意每个项目都应该独立开发,以便每个项目都有自己的生命周期.在开发阶段一切正常,没有问题.当我们为这些项目准备发布时,问题就出现了:因为手动更改的项目非常多,所以我们决定找到一个自动解决方案来解决发布过程.

先决条件是这些:我们都同意SVN视角的发布策略应该是这样的: - 所有开发都应该在SVN中继上执行,应该在分支上创建和维护发布.每个执行的版本都应自动创建一个标记.

来自MAVEN视角的策略是这样的: - 在发布项目之前,我们首先将主干复制到分支,以便控制对分支代码的项目维护.我们选择的版本控制系统是:Major.Minor.BuildNumber-SNAPSHOT(例如1.0.0-SNAPSHOT).分支代码时,我们希望通过递增MinorVersion来更改项目版本号(例如,trunk-1.0.0-SNAPSHOT将变为1.1.0-SNAPSHOT,并且将在新创建的分支上复制和发布1.0.0-SNAPSHOT ) - 当我们决定项目足够成熟以便发布时,我们通过使用maven-release-plugin(mvn release:clean release:prepare release:perform)发布它,以便我们的项目版本将从Major转换. Minor.BuildVersion-SNAPSHOT(例如1.0.0-SNAPSHOT)Major.Minor.BuildVersion(例如1.0.0),然后将为下一个开发迭代做好准备,如:Major.Minor.BuildVersion + 1-SNAPSHOT(例如1.0. 1-SNAPSHOT)

我们面临的问题与项目版本控制有关.因此,在主干的开发阶段,所有项目都使用其依赖项的最新SNAPSHOT版本(mvn版本:use-latest-versions -DallowSnapshots = true -DupdateDependencies = true),但是当我们考虑是时候启动发布程序并准备分支代码,出现问题:我们开始分支

  1. 父POM

    (mvn -B release:clean release:branch -DbranchName = $ {project.artifactId} _ $ {project.version} -Dusername = $ {username} -Dpassword = $ {passwd} -Dproject.rel.$ {groupId}: $ {projectId} = 1.0.0-SNAPSHOT -Dproject.dev.$ {groupId}:$ {projectId} = 1.1.0-SNAPSHOT)

    • 将项目从主干复制到新创建的分支,将主机上的pom版本从1.0.0-SNAPSHOT转换为1.1.0-SNAPSHOT …

versioning automation branch maven

7
推荐指数
1
解决办法
2227
查看次数

使用maven-nar-plugin在Maven中构建C++项目

有没有人使用maven-nar-plugin为不同的平台构建C++代码,使用不同的编译器?如果有人请给我更多相关信息.我只是想知道如何为maven的不同平台构建一个NAR文件.我知道,为了能够在特定平台上构建项目,您应该在该平台上运行构建,并使用该平台的特定编译器和链接器.但是我的经验与Java项目和Maven有关,因为你已经知道java是非常便携的平台,所以直到现在我还没有遇到像瘦的问题.因此,有关如何使用maven-nar-plugin构建项目的任何帮助和详细信息都将得到应用!谢谢

c++ maven maven-nar-plugin

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

Jenkins dsl管道def变量

我试图通过读取3个文件并连接输出来将变量定义为jenkins管道dsl脚本.3个文件的内容是:

file1的内容是:127

file2的内容是:0

file3的内容是:1

def var1 = readfile('file1')
def var2 = readfile('file2')
def var3 = readfile('file3')

def concatVar = "${var1} + '_' + ${var2} + '_' + ${var3}"
printin ${concatVar}
Run Code Online (Sandbox Code Playgroud)

我期望的输出是

printIn${concatVar} 
127_0_1 
Run Code Online (Sandbox Code Playgroud)

而我的输出是:

printIn ${concatVar} 
127
_0
_1
Run Code Online (Sandbox Code Playgroud)

我知道我错了,但我不知道怎么做.有没有人熟悉Jenkins管道dsl/groovy语法?

多谢你们

workflow dsl groovy jenkins jenkins-pipeline

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

awk在数组中设置元素

我有一个大的.csv文件要处理,我的元素是随机排列的,如下所示:

XXXXXX,XX, ,MLOCAL,MREMOTE,33222,,56 XXXXXX,XX, ,,,,, XXXXXX,XX, ,, XXXXXX,XX, ,, XXXXXX,XX, ,,,,, XXXXXX,XX, ,,,,, XXXXXX, XX, ,,22/10/201218/10/2012MREMOTEMLOCAL332225622/10/201218/10/2012MLOCAL34199322/10/2012
MREMOTE935682808/10/2012
LOCALREMOTE193161525322/10/201222/10/2012
REMOTELOCAL186587138366622/10/201222/10/2012
REMOTE118030613419/10/2012

其中字段LOCAL,REMOTE,MLOCALMREMOTE显示等:

  1. 当它们显示为成对(LOCAL/REMOTE)时,如果第3个字段是MLOCAL,第4个字段是MREMOTE,则第5个第7个字段表示值和日期MLOCAL …

csv awk if-statement case nawk

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