GithubHelp home page GithubHelp logo

Comments (8)

kaby76 avatar kaby76 commented on July 28, 2024 1

Fix in version 8.16. The solution involves passing a "PackageVersion" parameter to the GetAntlrJar task. The parameter is the collection of all PackageVersion items, wherever they be, in this case in the file Directory.Packages.props. If the version is set in the PackageReference element in the .csproj, it will take that. Otherwise, it searches through PackageVersion's and finds the version on that meta. If that is empty, then the GetAntlrJar task fails and prints out both lists.

from antlr4buildtasks.

kaby76 avatar kaby76 commented on July 28, 2024

The easiest way to fix the bug is to change the build temporarily to "dotnet build --no-restore -v diag" then examine the output.

from antlr4buildtasks.

kaby76 avatar kaby76 commented on July 28, 2024

Right. Harwell's old code sets trace level to "info" for exceptions. Doesn't make sense, since if there's a crash, let us know why!. There are a number of bugs I still haven't cleaned out of Harwell's old Antlr4 build code. I will release a 8.15 version asap, then you can try that, if you haven't tried "-v diag" earlier.

from antlr4buildtasks.

kaby76 avatar kaby76 commented on July 28, 2024

Eugene, If you have time, please try Antlr4BuildTasks 8.15 and see what it says. The error reporting is now fixed, but I don't know why the build would fail. Thanks.

from antlr4buildtasks.

EugeneKrapivin avatar EugeneKrapivin commented on July 28, 2024

this is the output before the update

22:36:02.017   1:4>Target "Antlr4GetBuildDeps: (TargetId:20)" in file "C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\Antlr4BuildTasks.targets" from project "D:\code\github\JsonTranslate.NET\src\JsonTranslate.NET.Core.JustDsl\JsonTranslate.NET.Core.JustDsl.csproj" (target "Build" depends on it):
                   Task "Message" (TaskId:13)
                     Task Parameter:Text=Tasks for Antlr in 'C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\..\lib\netstandard2.0\Antlr4BuildTasks.dll' (TaskId:13)
                     Tasks for Antlr in 'C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\..\lib\netstandard2.0\Antlr4BuildTasks.dll' (TaskId:13)
                   Done executing task "Message". (TaskId:13)
22:36:01.883   1:3>Antlr4GetBuildDeps: (TargetId:18)
                   Using "GetJava" task from assembly "C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\..\lib\netstandard2.0\Antlr4BuildTasks.dll".
                   Task "GetJava" (TaskId:16)
                     Task Parameter:IntermediateOutputPath=obj\Debug\netstandard2.1\ (TaskId:16)
                     Output Item(s): UsingJavaExec=obj\Debug\netstandard2.1\Java\jre\bin\java.exe (TaskId:16)
                   Done executing task "GetJava". (TaskId:16)
                   Task "Message" (TaskId:17)
22:36:02.017   1:4>Antlr4GetBuildDeps: (TargetId:20)
                   Using "GetJava" task from assembly "C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\..\lib\netstandard2.0\Antlr4BuildTasks.dll".
                   Task "GetJava" (TaskId:14)
                     Task Parameter:IntermediateOutputPath=obj\Debug\netstandard2.0\ (TaskId:14)
                     Output Item(s): UsingJavaExec=obj\Debug\netstandard2.0\Java\jre\bin\java.exe (TaskId:14)
                   Done executing task "GetJava". (TaskId:14)
                   Task "Message" (TaskId:15)
                     Task Parameter:Text=The output from GetJava task is 'obj\Debug\netstandard2.0\Java\jre\bin\java.exe' (TaskId:15)
                     The output from GetJava task is 'obj\Debug\netstandard2.0\Java\jre\bin\java.exe' (TaskId:15)
                   Done executing task "Message". (TaskId:15)
                   Using "GetAntlrJar" task from assembly "C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\..\lib\netstandard2.0\Antlr4BuildTasks.dll".
                   Task "GetAntlrJar" (TaskId:16)
                     Task Parameter:AntlrProbePath=
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.9.2/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.9.1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.9/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.8-1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.8/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.7.2/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.7.1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.7/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.6/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.3/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.2-1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.2/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.1-1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.3/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.2.2/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.2.1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.2/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.0/
                          (TaskId:16)
                     Task Parameter:
                         PackageReference=
                             NETStandard.Library
                                     IsImplicitlyDefined=true
                                     PrivateAssets=All
                                     Publish=true
                                     Version=2.0.3
                             Antlr4.Runtime.Standard
                             Antlr4BuildTasks
                                     PrivateAssets=all (TaskId:16)
                     Task Parameter:IntermediateOutputPath=obj\Debug\netstandard2.0\ (TaskId:16)
                     Output Item(s): UsingToolPath= (TaskId:16)
                   Done executing task "GetAntlrJar". (TaskId:16)
                   Task "Message" (TaskId:17)
                     Task Parameter:Text=The output from GetAntlrJar task is '' (TaskId:17)
                     The output from GetAntlrJar task is '' (TaskId:17)
                   Done executing task "Message". (TaskId:17)
22:36:32.041   1:4>Done building target "Antlr4GetBuildDeps" in project "JsonTranslate.NET.Core.JustDsl.csproj".: (TargetId:20)
                   Target "Antlr4CompileReadGeneratedFileList" skipped, due to false condition; (Exists($(Antlr4ToCompileListFile))) was evaluated as (Exists(obj\Debug\netstandard2.0\JsonTranslate.NET.Core.JustDsl.csproj.AntlrToCompileList.txt)).
22:36:32.041   1:4>Target "Antlr4Compile: (TargetId:21)" in file "C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\Antlr4BuildTasks.targets" from project "D:\code\github\JsonTranslate.NET\src\JsonTranslate.NET.Core.JustDsl\JsonTranslate.NET.Core.JustDsl.csproj" (target "Build" depends on it):
                   Building target "Antlr4Compile" completely.
                   Output file "obj\Debug\netstandard2.0\JsonTranslate.NET.Core.JustDsl.csproj.AntlrToCompileList.txt" does not exist.
                   Task "Message" (TaskId:18)
                     Task Parameter:Text=Running the Java Antlr Tool over the grammar files 'JustDsl.g4'. (TaskId:18)
                     Running the Java Antlr Tool over the grammar files 'JustDsl.g4'. (TaskId:18)
                   Done executing task "Message". (TaskId:18)
                   Using "RunAntlrTool" task from assembly "C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\..\lib\netstandard2.0\Antlr4BuildTasks.dll".
                   Task "RunAntlrTool" (TaskId:19)
                     Task Parameter:Listener=True (TaskId:19)
                     Task Parameter:Encoding=UTF-8 (TaskId:19)
                     Task Parameter:GAtn=False (TaskId:19)
                     Task Parameter:Visitor=True (TaskId:19)
                     Task Parameter:
                         SourceCodeFiles=
                             D:\code\github\JsonTranslate.NET\src\JsonTranslate.NET.Core.JustDsl\JustDsl.g4
                                     AntOutDir=
                                     CopyToOutputDirectory=Never
                                     DOptions=language=CSharp
                                     Encoding=UTF-8
                                     Error=false
                                     ForceAtn=false
                                     GAtn=false
                                     Generator=MSBuild:Compile
                                     IntermediateOutputPath=obj\Debug\netstandard2.0\
                                     LibPath=
                                     Listener=true
                                     Package=
                                     Visitor=true (TaskId:19)
                     Task Parameter:ForceAtn=False (TaskId:19)
                     Task Parameter:Error=False (TaskId:19)
                     Task Parameter:BuildTaskPath=C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\..\lib\netstandard2.0 (TaskId:19)
                     Task Parameter:DOptions=language=CSharp (TaskId:19)
                     Task Parameter:JavaExec=obj\Debug\netstandard2.0\Java\jre\bin\java.exe (TaskId:19)
                     Task Parameter:IntermediateOutputPath=obj\Debug\netstandard2.0\ (TaskId:19)
                     Task Parameter:TargetFrameworkVersion=v2.0 (TaskId:19)
22:36:01.883   1:3>Antlr4GetBuildDeps: (TargetId:18)
                     Task Parameter:Text=The output from GetJava task is 'obj\Debug\netstandard2.1\Java\jre\bin\java.exe' (TaskId:17)
                     The output from GetJava task is 'obj\Debug\netstandard2.1\Java\jre\bin\java.exe' (TaskId:17)
                   Done executing task "Message". (TaskId:17)
                   Using "GetAntlrJar" task from assembly "C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\..\lib\netstandard2.0\Antlr4BuildTasks.dll".
                   Task "GetAntlrJar" (TaskId:18)
                     Task Parameter:IntermediateOutputPath=obj\Debug\netstandard2.1\ (TaskId:18)
                     Task Parameter:
                         PackageReference=
                             Antlr4.Runtime.Standard
                             Antlr4BuildTasks
                                     PrivateAssets=all (TaskId:18)
                     Task Parameter:AntlrProbePath=
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.9.2/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.9.1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.9/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.8-1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.8/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.7.2/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.7.1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.7/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.6/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.3/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.2-1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.2/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.1-1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.5/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.3/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.2.2/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.2.1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.2/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.1/;
                           https://repo1.maven.org/maven2/org/antlr/antlr4/4.0/
                          (TaskId:18)
                     Output Item(s): UsingToolPath= (TaskId:18)
                   Done executing task "GetAntlrJar". (TaskId:18)
                   Task "Message" (TaskId:19)
22:36:32.041   1:4>Antlr4Compile: (TargetId:21)
                     Starting Antlr4 Build Tasks. ToolPath is "" (TaskId:19)
22:36:01.883   1:3>Antlr4GetBuildDeps: (TargetId:18)
                     Task Parameter:Text=The output from GetAntlrJar task is '' (TaskId:19)
                     The output from GetAntlrJar task is '' (TaskId:19)
22:36:32.041   1:4>Antlr4Compile: (TargetId:21)
                     Note AntOutDir is empty. Placing generated files in IntermediateOutputPath obj\Debug\netstandard2.0\ (TaskId:19)
22:36:27.975   1:3>Done executing task "Message". (TaskId:19)
22:36:27.976   1:3>Done building target "Antlr4GetBuildDeps" in project "JsonTranslate.NET.Core.JustDsl.csproj".: (TargetId:18)
                   Target "Antlr4CompileReadGeneratedFileList" skipped, due to false condition; (Exists($(Antlr4ToCompileListFile))) was evaluated as (Exists(obj\Debug\netstandard2.1\JsonTranslate.NET.Core.JustDsl.csproj.AntlrToCompileList.txt)).
22:36:32.041   1:4>Antlr4Compile: (TargetId:21)
                     JavaExec is "obj\Debug\netstandard2.0\Java\jre\bin\java.exe" (TaskId:19)
22:36:27.976   1:3>Target "Antlr4Compile: (TargetId:19)" in file "C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\Antlr4BuildTasks.targets" from project "D:\code\github\JsonTranslate.NET\src\JsonTranslate.NET.Core.JustDsl\JsonTranslate.NET.Core.JustDsl.csproj" (target "Build" depends on it):
22:36:27.976   1:3>Building target "Antlr4Compile" completely.
                   Output file "obj\Debug\netstandard2.1\JsonTranslate.NET.Core.JustDsl.csproj.AntlrToCompileList.txt" does not exist.
                   Task "Message" (TaskId:20)
                     Task Parameter:Text=Running the Java Antlr Tool over the grammar files 'JustDsl.g4'. (TaskId:20)
                     Running the Java Antlr Tool over the grammar files 'JustDsl.g4'. (TaskId:20)
                   Done executing task "Message". (TaskId:20)
                   Using "RunAntlrTool" task from assembly "C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\..\lib\netstandard2.0\Antlr4BuildTasks.dll".
                   Task "RunAntlrTool" (TaskId:21)
                     Task Parameter:IntermediateOutputPath=obj\Debug\netstandard2.1\ (TaskId:21)
                     Task Parameter:Visitor=True (TaskId:21)
                     Task Parameter:ForceAtn=False (TaskId:21)
                     Task Parameter:Encoding=UTF-8 (TaskId:21)
                     Task Parameter:Listener=True (TaskId:21)
                     Task Parameter:JavaExec=obj\Debug\netstandard2.1\Java\jre\bin\java.exe (TaskId:21)
                     Task Parameter:BuildTaskPath=C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\..\lib\netstandard2.0 (TaskId:21)
                     Task Parameter:Error=False (TaskId:21)
                     Task Parameter:DOptions=language=CSharp (TaskId:21)
                     Task Parameter:TargetFrameworkVersion=v2.1 (TaskId:21)
                     Task Parameter:
                         SourceCodeFiles=
                             D:\code\github\JsonTranslate.NET\src\JsonTranslate.NET.Core.JustDsl\JustDsl.g4
                                     AntOutDir=
                                     CopyToOutputDirectory=Never
                                     DOptions=language=CSharp
                                     Encoding=UTF-8
                                     Error=false
                                     ForceAtn=false
                                     GAtn=false
                                     Generator=MSBuild:Compile
                                     IntermediateOutputPath=obj\Debug\netstandard2.1\
                                     LibPath=
                                     Listener=true
                                     Package=
                                     Visitor=true (TaskId:21)
                     Task Parameter:GAtn=False (TaskId:21)
                     Starting Antlr4 Build Tasks. ToolPath is "" (TaskId:21)
                     Note AntOutDir is empty. Placing generated files in IntermediateOutputPath obj\Debug\netstandard2.1\ (TaskId:21)
                     JavaExec is "obj\Debug\netstandard2.1\Java\jre\bin\java.exe" (TaskId:21)
                     Cannot find Antlr4 jar file, currently set to 'C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\antlr-4.9-complete.jar'   at Antlr4.Build.Tasks.RunAntlrTool.Execute() in Antlr4BuildTasks.dll:token 0x600005f+0x436 (TaskId:21)
22:36:28.017   1:3>C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\Antlr4BuildTasks.targets(195,3): error MSB4181: The "RunAntlrTool" task returned false but did not log an error. [D:\code\github\JsonTranslate.NET\src\JsonTranslate.NET.Core.JustDsl\JsonTranslate.NET.Core.JustDsl.csproj]
                   Done executing task "RunAntlrTool" -- FAILED. (TaskId:21)
22:36:28.017   1:3>Done building target "Antlr4Compile" in project "JsonTranslate.NET.Core.JustDsl.csproj" -- FAILED.: (TargetId:19)
22:36:28.018   1:3>Done Building Project "D:\code\github\JsonTranslate.NET\src\JsonTranslate.NET.Core.JustDsl\JsonTranslate.NET.Core.JustDsl.csproj" (Build target(s)) -- FAILED.
22:36:32.041   1:4>Antlr4Compile: (TargetId:21)
                     Cannot find Antlr4 jar file, currently set to 'C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\antlr-4.9-complete.jar'   at Antlr4.Build.Tasks.RunAntlrTool.Execute() in Antlr4BuildTasks.dll:token 0x600005f+0x436 (TaskId:19)
22:36:32.081   1:4>C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.14.0\build\Antlr4BuildTasks.targets(195,3): error MSB4181: The "RunAntlrTool" task returned false but did not log an error. [D:\code\github\JsonTranslate.NET\src\JsonTranslate.NET.Core.JustDsl\JsonTranslate.NET.Core.JustDsl.csproj]
                   Done executing task "RunAntlrTool" -- FAILED. (TaskId:19)
22:36:32.082   1:4>Done building target "Antlr4Compile" in project "JsonTranslate.NET.Core.JustDsl.csproj" -- FAILED.: (TargetId:21)
22:36:32.083   1:4>Done Building Project "D:\code\github\JsonTranslate.NET\src\JsonTranslate.NET.Core.JustDsl\JsonTranslate.NET.Core.JustDsl.csproj" (Build target(s)) -- FAILED.
22:36:32.093     1>Done executing task "MSBuild" -- FAILED. (TaskId:2)
22:36:32.096     1>Done building target "DispatchToInnerBuilds" in project "JsonTranslate.NET.Core.JustDsl.csproj" -- FAILED.: (TargetId:4)
22:36:32.098     1>Done Building Project "D:\code\github\JsonTranslate.NET\src\JsonTranslate.NET.Core.JustDsl\JsonTranslate.NET.Core.JustDsl.csproj" (default targets) -- FAILED.

from antlr4buildtasks.

EugeneKrapivin avatar EugeneKrapivin commented on July 28, 2024

Interestingly enough, following the path C:\Users\EugeneKrapivin\.nuget\packages\antlr4buildtasks\8.15.0\build
where the target task attempts to find the jar, there is a jar, but the naming is different from what the task is looking for: antlr-4.9.2-complete.jar
renaming the file and running dotnet build --no-restore actually passes.

from antlr4buildtasks.

kaby76 avatar kaby76 commented on July 28, 2024

OK. The way the Antlr4BuildTasks tool works is to:

  1. Find the Java JRE.
  2. Find the Antlr4 Tool Jar.
  3. Call the Antlr4 Tool Jar using the Java JRE and munch on your Antlr4 grammars.
  4. Manage what files are generated, what needs to be added to the build, what needs to be removed on a Clean.

For your build, it finds the Java Runtime no problem. That's because it's included in the package and returns that. The tool has some environmental variables or msbuild variables it can look at, but you don't set any of those, so it returns the default.

Then GetAntlrJar task is called. That's supposed to figure out where the Antlr Tool jar is. GetAntlrJar returns an empty string, which means it couldn't find the Antlr Tool jar.

So, the first problem is that if it's going to return null or an empty string, then it needs to throw an error. It should not play dumb. And it is.

The AntlrToolJar task doesn't say what it's looking for, which makes it hard for me looking at the output what version of the Antlr4.Runtime.Standard it's probing for. Also a dumb oversight on my part.

But, your .csproj is very different. It doesn't contain a version for Antlr4.Runtime.Standard in the .csproj. It's instead in a props file way, way over in left field. GetAntlrJar is passed @PackageReference, with Antlr4.Runtime.Standard but without a version. So, this line likely fails, and so it has no idea what to find.

The solution for now is to just add version="4.9.2" attribute in the PackageReference element. So, make sure the .csproj has <PackageReference Include="Antlr4.Runtime.Standard" Version="4.9.2" />. I don't think you need to do the same with the Antlr4BuildTasks PackageReference, so you can leave it as is.

In the meanwhile, I'll try to figure out how to get the version it's looking for in this new fangled "Centrally managing NuGet package versions" way of build files where it's placed way outside the .csproj file. The problem is that I need to be told what it is. The whole point of Antlr4BuildTasks is that it manages picking up the right Antlr Tool jar with the right runtime. Antlr4 will not run if there is a version skew.

from antlr4buildtasks.

EugeneKrapivin avatar EugeneKrapivin commented on July 28, 2024

I've tested it locally and it looks awesome, thanks for the kind and swift response!

from antlr4buildtasks.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.