2017-03-09 79 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工具,它工作正常。