[英]Skip "Installing function extensions if needed"
我使用maven-plugin-for-azure-functions
创建一个带有自定义触发器绑定的 Java 函数应用程序。 自定义触发器由另一个 .Net 项目创建,并通过 Azure Devops Artifacts 源作为通用包发布其工件。
我使用自定义触发器作为通用包,以在我的 Java Function App 构建期间摆脱 .Net 依赖项。
当我下载包并将其内容复制到stagingDirectory
, maven-plugin-for-azure-functions
尝试安装一些扩展。
[INFO] Step 8 of 8: Installing function extensions if needed
...
[INFO] Function extension installation done.
步骤创建extensions.csproj
有一些默认的扩展和覆盖我的自定义扩展的文件。 我试图删除PackageReference
元素,但它会在每次package
运行时恢复。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<WarningsAsErrors></WarningsAsErrors>
<DefaultItemExcludes>**</DefaultItemExcludes>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventGrid" Version="2.1.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.1.3" />
</ItemGroup>
</Project>
如何禁用功能扩展安装?
我找到了一些解决插件隐式扩展安装的方法。
在prepare-package
阶段,我用一些虚拟文件替换了host.json
,这会抑制安装过程。
{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", "version": "[1.*, 2.0.0)" } }
因此插件会跳过扩展安装。
[INFO] Step 8 of 8: Installing function extensions if needed [INFO] Extension bundle specified, skip install extension [INFO] Successfully built Azure Functions.
我把通用包下载的脚本移到了package
阶段,在插件之后执行。 该脚本也将还原host.json
通过移除extensionBundle
财产和副本归还的文件到stagingDirectory
。
生成的存档最终包含通用包的bin
文件夹和正确的host.json
。
在pom.xml
添加skipInstallExtensions
以避免在mvn package
运行步骤。 检查下面的示例:
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-functions-maven-plugin</artifactId>
<version>1.13.0-SNAPSHOT</version>
<configuration>
<!-- potential configuration property -->
<skipInstallExtensions>true</skipInstallExtensions>
</configuration>
</plugin>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.