[英]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.