2017-03-09 81 views
0

我有一個在Azure上託管的應用服務。如何在微軟Azure上安裝maven(應用服務)

我們服務的代碼位於bitbucket上,它是一個基於maven的Java項目。開發人員部署WAR文件的過程是在本地構建它們並將其FTP到Azure,這顯然不被推薦。

比方說,我沒有自由和資源舉辦像詹金斯一個CI工具,我想做到以下幾點:

  1. 同步的代碼bitbucket.org通過使用'到Azure部署選項「在Azure中。每次我執行git push時,Azure都會自動從指定分支中獲取代碼並複製/更新/刪除修改的文件(並默認將它們置於wwwroot下)

  2. 我想修改deployment.cmd文件在Azure中,以便我可以在#1後添加自定義步驟。

我在哪裏卡住了?

  1. 我已經在D:\home\maven文件夾下的FTP的maven和解壓maven。我通過使用XDT文件(附件)設置了正確的環境變量。然而,當我做MVN -version,我得到以下錯誤:

java.lang.NoClassDefFoundError: org/apache/maven/exception/ExceptionHandler

.. .. caused by ClassNotFound ..

我沒有完整跟蹤得心應手。這個類是在lib文件夾(我已驗證)下的maven-core中。

難道是因爲權限?雲對我來說是陰天o_O

  1. 當我得到這個工作後,我需要添加自定義步驟到deployment.cmd。是否有我需要使用的特定語言或Windows命令?對於ENV變量

XDT文件內容(JAVA_HOME已設置)

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document- Transform"> 
<system.webServer> 
<runtime xdt:Transform="InsertIfMissing"> 
<environmentVariables xdt:Transform="InsertIfMissing">  
<add name="M2_HOME" value="D:\home\maven\apache-maven-3.3.9" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" /> 
<add name="MAVEN_HOME" value="D:\home\maven\apache-maven-3.3.9" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" /> 
<add name="Path" value="%Path%%JAVA_HOME%\bin;%M2_HOME%\bin;" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />  
</environmentVariables> 
</runtime> 
</system.webServer> 

回答

0

我試圖重現該問題,但未能成功。根據kudu維基頁面Xdt transform samples,環境變量似乎不支持在當前環境可變的上方定義的相互引用。

因此,請在下面的XDT文件內容中進行更改,以便在對Azure的Azure Web應用程序實例進行測試後正常工作。

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.webServer> 
    <runtime xdt:Transform="InsertIfMissing"> 
     <environmentVariables xdt:Transform="InsertIfMissing"> 
     <add name="M2_HOME" value="D:\home\maven\apache-maven-3.3.9" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />  
     <add name="MAVEN_HOME" value="D:\home\maven\apache-maven-3.3.9" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" /> 
     <add name="PATH" value="%PATH%;D:\home\maven\apache-maven-3.3.9\bin" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />  
     </environmentVariables> 
    </runtime> 
    </system.webServer> 
</configuration> 

然後我跑的命令mvn -version上捻CMD工具,它工作正常。