我有一个托管在Azure上的应用服务。
我们服务的代码是bitbucket,它是一个基于maven的Java项目。开发人员采用的部署WAR文件的过程是在本地构建它们,将FTP构建到Azure,这显然不建议使用。
让我们说我没有像詹金斯那样拥有CI工具的自由和资源,我正在努力做到以下几点:
使用'部署选项'将bitbucket.org中的代码同步到Azure。在Azure中。每次我执行git推送时,Azure都会自动从指定的分支中获取代码并复制/更新/删除修改后的文件(默认情况下将它们放在wwwroot下)
我想在Azure中修改deployment.cmd文件,以便我可以在#1后添加自定义步骤。
我被困在哪里?
D:\home\maven
文件夹下有FTP maven和unpacked maven。我已使用XDT文件(附加)设置了正确的环境变量。然而,当我做mvn -version时,我收到以下错误:java.lang.NoClassDefFoundError: 组织/阿帕奇/行家/异常/的ExceptionHandler
.. .. 由ClassNotFound引起..
我没有完整的追踪方便。这个类在maven-core中,在lib文件夹下(我已经验证)。
可能是因为权限?云对我来说是阴天o_O
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 :(得分: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
,它运行正常。