2016-09-24 110 views
0

我遇到了Maven发布流程的问题。我已经创建了我的过程的编译阶段,以便可以编译相同的版本或更高版本,但编译过去的版本会出错。 (这是在编译阶段将对象压入数据库所必需的,我不希望这些对象回退到以前的版本。)Maven发布流程

我有一个项目,并且在pom文件中指定它是版本0.0.1-SNAPSHOT

我运行Maven的版本:准备,全部采用默认设置,并能正常工作给了我一个新的POM文件与版本0.0.2-SNAPSHOT

我然后运行Maven的版本:执行,现阶段它遇到了一个问题。 它似乎已编译版本0.0.1后编译版本0.0.1-SNAPSHOT。由于0.0.1-SNAPSHOT在0.0.1之前出现,所以出现错误。

我的问题是为什么释放插件在编译0.0.1后编译0.0.1-SNAPSHOT。同样在这个时候,pom.xml的版本是0.0.2-SNAPSHOT。

任何人都可以解释/指向文档显示这个过程,如果可能的话告诉我如何能够防止这种行为。

+0

只有'release:prepare'标记0.0版本才会出现这种情况。1-SNAPSHOT而不是0.0.1。如果它的版本正确,请检查VCS上的标签。另外,'release:perform'依赖于'prepare'创建的'release.properties'文件,因此请确保在'prepare'和'perform'之间不要修改/删除它。 – Tunaki

+0

我检查了在git仓库中创建的标签,它是“ICSchema_SAMPLE_UTIL_SCHEMA-0.0.1”,因此看起来正确。此外,我不会更改该属性文件。我浏览了它,似乎所有的信息都是正确的。 – Robert3452

+0

检查POM中的''是否也在标记中为0.0.1。你可以在运行'mvn release:perform'时发布你的日志样本吗? – Tunaki

回答

0

(我的第一个答案是错误的)

我的实验表明,该版本插件不作部署在一个陌生的顺序,版本0.0.1-SNAPSHOT并得到部署完成后0.0.1

由于我部署过程需要错误的正确顺序。 我有一个解决方法,因为我的进程不会进行部署,除非我在开​​始发布过程之前做了任何更改(如果我执行了“mvn deploy”),那么发布过程在部署“0.0”时不会做任何更改。 1“,我可以解决这个问题。

0

我今天上午仔细地重新运行了这个过程,现在它工作正常,没有任何错误。我不明白发生了什么问题。

我的过程是: 初始:

pom version: 0.0.1-SNAPSHOT (Same on gitlab and local clone) 
tags: none 
Latest Deployed to DB: Nothing deployed in DB 

运行命令:mvn部署命令

pom version: 0.0.1-SNAPSHOT (Same on gitlab and local clone) 
tags: none 
Latest Deployed to DB: 0.0.1-SNAPSHOT 

运行:MVN发布:准备

Input: release version - 0.0.1 (default accepted) 
Input: SCM release tag or label - ICSchema_SAMPLE_UTIL_SCHEMA-0.0.1 (default accepted) 
Input: New development version - 0.0.2-SNAPSHOT (default accepted) 
pom version: 0.0.2-SNAPSHOT (gitlab still shows 0.0.1-SNAPSHOT) 
tags: ICSchema_SAMPLE_UTIL_SCHEMA-0.0.1 (gitlab also shows this tag) 
Latest Deployed to DB: 0.0.1-SNAPSHOT 

发布属性文件已创建:

#release configuration 
#Mon Sep 26 10:54:07 BST 2016 
project.dev.metcarob.com.oracledb.sample.schema\:ICSchema_SAMPLE_UTIL_SCHEMA=0.0.2-SNAPSHOT 
[email protected]{project.artifactId}[email protected]{project.version} 
scm.tag=ICSchema_SAMPLE_UTIL_SCHEMA-0.0.1 
project.scm.metcarob.com.oracledb.sample.schema\:ICSchema_SAMPLE_UTIL_SCHEMA.connection=scm\:git\:ssh\://[email protected]/rmetcalf9/ICSchema_SAMPLE_UTIL_SCHEMA.git 
pushChanges=true 
scm.url=scm\:git\:ssh\://[email protected]/rmetcalf9/ICSchema_SAMPLE_UTIL_SCHEMA.git 
preparationGoals=clean verify 
project.rel.metcarob.com.oracledb.sample.schema\:ICSchema_SAMPLE_UTIL_SCHEMA=0.0.1 
remoteTagging=true 
scm.commentPrefix=[maven-release-plugin] 
project.scm.metcarob.com.oracledb.sample.schema\:ICSchema_SAMPLE_UTIL_SCHEMA.tag=HEAD 
project.scm.metcarob.com.oracledb.sample.schema\:ICSchema_SAMPLE_UTIL_SCHEMA.url=ssh\://[email protected]\:rmetcalf9/ICSchema_SAMPLE_UTIL_SCHEMA.git 
exec.additionalArguments=-Dcmd.env\=dev -Dcmd.parent.sys\=soa 
exec.snapshotReleasePluginAllowed=false 
completedPhase=end-release 

运行:MVN发布:执行

​​

*我已经意识到我的最新部署到数据库字段是误导,因为我的过程仅部署到DB如果PLSQL脚本的散列已经改变每个尽管它仍然显示0.0.1-SNAPSHOT,但它仍然意味着可能已经部署了版本0.0.1和0.0.2-SNAPSHOT。

未清除数据库可能是我的问题的原因。