Replies: 6 comments 4 replies
-
Looks like it's trying to bring in the maven plugins from the POM file. Not sure why. |
Beta Was this translation helpful? Give feedback.
-
So the reason is because https://repo1.maven.org/maven2/net/sf/jt400/jt400/20.0.7/jt400-20.0.7.pom lists org.apache.maven.plugins:maven-antrun-plugin as a dependency. I do not know why this is in here. But what it signals is that this jar is required to build the main jar. But not distributed at runtime. So, IKVM considers it to be a dependency required to transpile jt400, even though it should not be made available at runtime. Provided scope means the implementation classes will be present at runtime. But, at build time, the library mentioned should be used. So, IKVM follows through with that: it includes the plugin as it expects references to it in the classes at compile time. I would bring this up with the jt400 people. Maven plugins should never be dependencies (unless you are actually writing a plugin). |
Beta Was this translation helpful? Give feedback.
-
After a bit of experimenting, this seems to get rid of the link error at least:
There were a pile of class not found (IKVMC0100) and no such method (IKVMC0117) warnings, which may or may not be related. I guess I'll know once I try plugging it into something more than a Hello World. |
Beta Was this translation helpful? Give feedback.
-
Probably. But including that plugin as a dep at all is a bug in jr400. You should report it |
Beta Was this translation helpful? Give feedback.
-
Sure thing. Logged IBM/JTOpen#190. Do you think the |
Beta Was this translation helpful? Give feedback.
-
Another thing here, for this version, is they have a specifically java8 artifact: https://repo1.maven.org/maven2/net/sf/jt400/jt400/20.0.7/ Notice the artifact ending in -java8. You might try using that artifact instead. Which I believe would be changing the Classifier of the MavenReference to java8. They seem to explicitly have a java8 and java11 artifact.... and then a default one. But I don't know what version of the JDK the default one is supposed to be targeting. |
Beta Was this translation helpful? Give feedback.
-
Hi - I'm not sure where exactly my problem lies, so posting this as a discussion rather than an issue.
I've created a Hello World console app (literally just used the default console project template VS provides), added the IKVM.Maven.Sdk v1.6.9 dependency via NuGet and then tried adding a maven dependency to the jt400 project.
If I add it as:
Then the project compiles fine (possibly worthy of note: jt400 v11.x doesn't have a pom, so not a proper maven project... I believe).
However, if I increment the version to the latest:
Then the build fails with this error:
This suggested something might be up with the updated jt400 package. But having downloaded the latest version of its code and doing a clean build, it doesn't have a reference to the org.eclipse.sisu project. I even cleared out my local maven folder to confirm it wasn't being downloaded from some deeply nested dependency. It only seems to get downloaded when trying to build the C# project.
So, am I missing something in my set up? Or is this some weird interaction that's breaking the IKVM compiler?
Beta Was this translation helpful? Give feedback.
All reactions