Maven发布流程
Maven release process
我在 Maven 发布过程中遇到问题。我已经创建了我的过程的编译阶段,这样你就可以编译相同的版本或更高的版本,但是你编译以前的版本会出错。 (这是必需的,因为对象在编译阶段被推送到数据库中,我不希望这些对象退回到以前的版本。)
我有一个项目,在 pom 文件中指定它是版本 0.0.1-SNAPSHOT
我 运行 maven release:prepare,使用所有默认设置,它工作正常给我一个版本为 0.0.2-SNAPSHOT
的新 pom 文件
然后我 运行 maven release:perform,在这个阶段它遇到了一个问题。
似乎它在已经编译了 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。
任何人都可以 explain/point 显示此过程的文档,如果可能的话告诉我如何防止这种行为。
今天早上我仔细地重新运行这个过程,现在它运行正常,没有任何错误。我不明白出了什么问题。
我的流程是:
首字母:
pom version: 0.0.1-SNAPSHOT (Same on gitlab and local clone)
tags: none
Latest Deployed to DB: Nothing deployed in DB
运行: mvn deploy 命令
pom version: 0.0.1-SNAPSHOT (Same on gitlab and local clone)
tags: none
Latest Deployed to DB: 0.0.1-SNAPSHOT
运行: mvn release:prepare
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
scm.tagNameFormat=@{project.artifactId}-@{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\://git@gitlab.com/rmetcalf9/ICSchema_SAMPLE_UTIL_SCHEMA.git
pushChanges=true
scm.url=scm\:git\:ssh\://git@gitlab.com/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\://git@gitlab.com\:rmetcalf9/ICSchema_SAMPLE_UTIL_SCHEMA.git
exec.additionalArguments=-Dcmd.env\=dev -Dcmd.parent.sys\=soa
exec.snapshotReleasePluginAllowed=false
completedPhase=end-release
运行: mvn release:perform
Worked successfully this time!!!!
pom version: 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*
*我已经意识到我的最新部署到数据库字段具有误导性,因为我的进程只会在每个对象的 PLSQL 脚本的哈希值发生变化时才部署到数据库,所以尽管它仍然显示 0.0.1-SNAPSHOT 它仍然表示版本 0.0.1 和 0.0.2-SNAPSHOT 可能已部署。
未清除数据库可能是我出现问题的原因。
(我的第一个答案是错误的)
我的实验表明发布插件确实以奇怪的顺序进行部署,版本 0.0.1-SNAPSHOT 确实在 0.0.1 之后部署
由于我的部署过程需要正确的顺序,所以它失败了。
我有一个解决方法,因为我的过程不会进行部署,除非我做了任何更改如果我在开始发布过程之前执行 "mvn deploy" 那么发布过程在部署“0.0.0.0.0”时不会进行任何更改。 1",我可以解决这个问题。
我在 Maven 发布过程中遇到问题。我已经创建了我的过程的编译阶段,这样你就可以编译相同的版本或更高的版本,但是你编译以前的版本会出错。 (这是必需的,因为对象在编译阶段被推送到数据库中,我不希望这些对象退回到以前的版本。)
我有一个项目,在 pom 文件中指定它是版本 0.0.1-SNAPSHOT
我 运行 maven release:prepare,使用所有默认设置,它工作正常给我一个版本为 0.0.2-SNAPSHOT
的新 pom 文件然后我 运行 maven release:perform,在这个阶段它遇到了一个问题。 似乎它在已经编译了 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。
任何人都可以 explain/point 显示此过程的文档,如果可能的话告诉我如何防止这种行为。
今天早上我仔细地重新运行这个过程,现在它运行正常,没有任何错误。我不明白出了什么问题。
我的流程是: 首字母:
pom version: 0.0.1-SNAPSHOT (Same on gitlab and local clone)
tags: none
Latest Deployed to DB: Nothing deployed in DB
运行: mvn deploy 命令
pom version: 0.0.1-SNAPSHOT (Same on gitlab and local clone)
tags: none
Latest Deployed to DB: 0.0.1-SNAPSHOT
运行: mvn release:prepare
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
scm.tagNameFormat=@{project.artifactId}-@{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\://git@gitlab.com/rmetcalf9/ICSchema_SAMPLE_UTIL_SCHEMA.git
pushChanges=true
scm.url=scm\:git\:ssh\://git@gitlab.com/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\://git@gitlab.com\:rmetcalf9/ICSchema_SAMPLE_UTIL_SCHEMA.git
exec.additionalArguments=-Dcmd.env\=dev -Dcmd.parent.sys\=soa
exec.snapshotReleasePluginAllowed=false
completedPhase=end-release
运行: mvn release:perform
Worked successfully this time!!!!
pom version: 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*
*我已经意识到我的最新部署到数据库字段具有误导性,因为我的进程只会在每个对象的 PLSQL 脚本的哈希值发生变化时才部署到数据库,所以尽管它仍然显示 0.0.1-SNAPSHOT 它仍然表示版本 0.0.1 和 0.0.2-SNAPSHOT 可能已部署。
未清除数据库可能是我出现问题的原因。
(我的第一个答案是错误的)
我的实验表明发布插件确实以奇怪的顺序进行部署,版本 0.0.1-SNAPSHOT 确实在 0.0.1 之后部署
由于我的部署过程需要正确的顺序,所以它失败了。 我有一个解决方法,因为我的过程不会进行部署,除非我做了任何更改如果我在开始发布过程之前执行 "mvn deploy" 那么发布过程在部署“0.0.0.0.0”时不会进行任何更改。 1",我可以解决这个问题。