2016-09-24 47 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。

未清除數據庫可能是我的問題的原因。