0

I am trying to use VSCode to create azure function and deploy it to azure. I followed the official documentation as described,

https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-vs-code?pivots=programming-language-java.

I am able to run project but getting errors for dependencies mentioned in pom.xml file.

missing artifact org.hamcrest:hamcrest-core:jar1.3

failed to read artifact descriptor for com.mircosoft.azure:azure-functions-java-core:jar1.0.0.-beta-1

missing artifact com.microsoft.aure:azure-functions-java-core:jar1.0.0-beta-1

missing artifact junit:junit:4.12

complete error trace:

{

failed to read artifact descriptor for com.mircosoft.azure:azure-functions-java-core:jar1.0.0.-beta-1 "resource": "/c:/Users/name/vsProject/pom.xml", "owner": "generated_diagnostic_collection_name#3", "code": "0", "severity": 8, "message": "Failed to read artifact descriptor for com.microsoft.azure:azure-functions-java-core:jar:1.0.0-beta-1\n\norg.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for com.microsoft.azure:azure-functions-java-core:jar:1.0.0-beta-1\r\n\tat org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:255)\r\n\tat org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:171)\r\n\tat org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.resolveCachedArtifactDescriptor(DefaultDependencyCollector.java:541)\r\n\tat org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.getArtifactDescriptorResult(DefaultDependencyCollector.java:524)\r\n\tat org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:412)\r\n\tat org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:365)\r\n\tat org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process(DefaultDependencyCollector.java:352)\r\n\tat org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:254)\r\n\tat org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:284)\r\n\tat org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:169)\r\n\tat org.apache.maven.project.DefaultProjectBuilder.resolveDependencies(DefaultProjectBuilder.java:227)\r\n\tat org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:200)\r\n\tat org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:124)\r\n\tat org.eclipse.m2e.core.internal.embedder.MavenImpl.readMavenProject(MavenImpl.java:630)\r\n\tat org.eclipse.m2e.core.internal.project.registry.DefaultMavenDependencyResolver.resolveProjectDependencies(DefaultMavenDependencyResolver.java:65)\r\n\tat org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refreshPhase2(ProjectRegistryManager.java:550)\r\n\tat org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.lambda$3(ProjectRegistryManager.java:514)\r\n\tat org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179)\r\n\tat org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:153)\r\n\tat org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:512)\r\n\tat org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:364)\r\n\tat org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:315)\r\n\tat org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration0(ProjectConfigurationManager.java:409)\r\n\tat org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.lambda$1(ProjectConfigurationManager.java:358)\r\n\tat org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179)\r\n\tat org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:153)\r\n\tat org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:101)\r\n\tat org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1370)\r\n\tat org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:357)\r\n\tat org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:343)\r\n\tat org.eclipse.jdt.ls.core.internal.managers.MavenBuildSupport.update(MavenBuildSupport.java:87)\r\n\tat org.eclipse.jdt.ls.core.internal.managers.ProjectsManager$3.runInWorkspace(ProjectsManager.java:355)\r\n\tat org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:42)\r\n\tat org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)\r\nCaused by: org.eclipse.aether.resolution.ArtifactResolutionException: Failure to transfer com.microsoft.azure:azure-functions-java-core:pom:1.0.0-beta-1 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact com.microsoft.azure:azure-functions-java-core:pom:1.0.0-beta-1 from/to central (https://repo.maven.apache.org/maven2): connect timed out\r\n\tat org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:424)\r\n\tat org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:229)\r\n\tat org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:207)\r\n\tat org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:240)\r\n\t... 33 more\r\nCaused by: org.eclipse.aether.transfer.ArtifactTransferException: Failure to transfer com.microsoft.azure:azure-functions-java-core:pom:1.0.0-beta-1 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact com.microsoft.azure:azure-functions-java-core:pom:1.0.0-beta-1 from/to central (https://repo.maven.apache.org/maven2): connect timed out\r\n\tat org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.newException(DefaultUpdateCheckManager.java:225)\r\n\tat org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.checkArtifact(DefaultUpdateCheckManager.java:193)\r\n\tat org.eclipse.aether.internal.impl.DefaultArtifactResolver.gatherDownloads(DefaultArtifactResolver.java:559)\r\n\tat org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:483)\r\n\tat org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:401)\r\n\t... 36 more\r\n", "source": "Java", "startLineNumber": 1, "startColumn": 1, "endLineNumber": 1, "endColumn": 1 missing artifact org.hamcrest:hamcrest-core:jar1.3 missing artifact com.microsoft.aure:azure-functions-java-core:jar1.0.0-beta-1 missing artifact junit:junit:4.12 }

pom.xml snippet:

'<dependencies>
    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-functions-java-core</artifactId>
        <version>1.0.0-beta-3</version>
    </dependency>

    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>2.2</version>
      </dependency>

    <!-- Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>'

Any help would be appreciated. Thanks in advance.

Ashwinee
  • 15
  • 6

1 Answers1

0

Make sure your network connection works well and Open Command Palette, clean java language server workspace.

You can turn to Maven Repository and find the missed dependencies then add them to pom.xml,

OR

Open Command Palette and choose Maven: Add a dependency..., then select missed dependencies the error mentioned. Then rebuild the project. Try and see if it solves your question.

[UPDATE]

The error said

Failure to transfer com.microsoft.azure:azure-functions-java-core:pom:1.0.0-beta-1 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced.

The easiest way to resolve this is to delete the dependencies or artifacts which maven has appended with the .lastUpdated prefix. Only after that can you successfully Update Dependencies of your maven project.

Please try this solution: Maven error “Failure to transfer…”

Molly Wang-MSFT
  • 7,943
  • 2
  • 9
  • 22
  • Dependencies are already available in pom.xml. I have added pom.xml in the original post. – Ashwinee Jun 17 '21 at 07:38
  • @Ashwinee. I've update my answer, please have a try. – Molly Wang-MSFT Jun 17 '21 at 08:37
  • Dependencies errors are gone with first run after above step u mentioned.. But it appeared again for second and next run. Also while running when I tried to call the function with url : [http://localhost:7071/api/hello?name=azure] shows no output. Example I am trying to execute is from [https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-vs-code?pivots=programming-language-java.] **Have you tried executing this example?** – Ashwinee Jun 17 '21 at 11:15
  • @Ashwinee. I don't have azure account, so I didn't try it, but maven template projects could be run successfully on my machine. Did you set jdk which version is lower than jdk11 as `java.home`? – Molly Wang-MSFT Jun 18 '21 at 02:10
  • @Molly.Ok. I am using JDK 8 – Ashwinee Jun 18 '21 at 03:04
  • @Ashwinee. Java extension needs jdk11 or recent version to support. Install the required jdk and set it as `java.home`, the error should go away. – Molly Wang-MSFT Jun 18 '21 at 03:10
  • yes I tried with jdk 11 but I was facing issue mentioned here : [https://stackoverflow.com/questions/61149061/azure-functions-project-using-visual-studio-code-in-java] and so I switch the `java.home` to jdk 8 – Ashwinee Jun 18 '21 at 07:33
  • @Ashwinee. that's weird. i'll keep researching and you may ask in [vscode-java](https://github.com/redhat-developer/vscode-java/issues/new) for more help. – Molly Wang-MSFT Jun 18 '21 at 07:40
  • sure. Thanks @Molly – Ashwinee Jun 18 '21 at 07:56
  • @Ashwinee, jdk11 is fine, I test with other's account and get the name response. Did you see the tutorial [run the function locally](https://learn.microsoft.com/en-us/azure/developer/javascript/tutorial/vscode-function-app-http-trigger/tutorial-vscode-serverless-node-test-local) and can you share your github issue link? – Molly Wang-MSFT Jun 18 '21 at 08:35
  • @Ashwinee, Keep `java.home` still as jdk11, you can specify your project using jdk8, In pom.xml of a Maven project: ` 1.8 1.8 ` – Molly Wang-MSFT Jun 18 '21 at 08:56
  • I already have ` UTF-8 1.8 1.8 myFunction-12345 ` set in `pom.xml` and now java.home to jdk11 but still when I hit the url `http://localhost:7071/api/hello?name=Azure` it doesn't show me any response. Not sure what I am missing :( – Ashwinee Jun 18 '21 at 09:30
  • Github issue link - `https://github.com/redhat-developer/vscode-java/issues/1985` Can you share function.java file ? – Ashwinee Jun 18 '21 at 10:03
  • @Ashwinee. Sure. Here it is: [Function.java](https://github.com/molly-w/vsc-Java/blob/main/Function.java) – Molly Wang-MSFT Jun 21 '21 at 02:24