如何在Microsoft Azure(app servies)上安装maven

时间:2017-03-09 14:33:28

标签: java maven azure azure-web-app-service azure-deployment

我有一个托管在Azure上的应用服务。

我们服务的代码是bitbucket,它是一个基于maven的Java项目。开发人员采用的部署WAR文件的过程是在本地构建它们,将FTP构建到Azure,这显然不建议使用。

让我们说我没有像詹金斯那样拥有CI工具的自由和资源,我正在努力做到以下几点:

  1. 使用'部署选项'将bitbucket.org中的代码同步到Azure。在Azure中。每次我执行git推送时,Azure都会自动从指定的分支中获取代码并复制/更新/删除修改后的文件(默认情况下将它们放在wwwroot下)

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

  3. 我被困在哪里?

    1. 我在D:\home\maven文件夹下有FTP maven和unpacked maven。我已使用XDT文件(附加)设置了正确的环境变量。然而,当我做mvn -version时,我收到以下错误:
    2.   

      java.lang.NoClassDefFoundError:   组织/阿帕奇/行家/异常/的ExceptionHandler

           

      ..   ..   由ClassNotFound引起..

      我没有完整的追踪方便。这个类在maven-core中,在lib文件夹下(我已经验证)。

      可能是因为权限?云对我来说是阴天o_O

      1. 在我开始工作之后,我需要向deployment.cmd添加自定义步骤。是否有我需要使用的特定语言或Windows命令?
      2. 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> 
        

1 个答案:

答案 0 :(得分:0)

我试图重现这个问题,但失败了。根据{{​​3}}的kudu wiki页面,环境变量似乎不支持在当前环境变量之上定义的彼此引用。

因此,请在我在Azure Web App实例上测试Java后,更改下面的XDT文件内容。

<?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> 

然后我在Kudu CMD工具上运行命令mvn -version,它运行正常。