purple-van-78680
05/28/2020, 2:34 PM09:31:56 00:13 [create-monolithic-jar]
09:31:56 00:13 [add-internal-classes]
09:31:56 00:13 [add-dependency-jars]
==== stdout ====
==== stderr ====
java.lang.IllegalAccessError: class org.pantsbuild.tools.jar.JarBuilder$7 tried to access method 'com.google.common.collect.TreeTraverser com.google.common.io.Files.fileTreeTraverser()' (org.pantsbuild.tools.jar.JarBuilder$7 and com.google.common.io.Files are in unnamed module of loader 'app')
at org.pantsbuild.tools.jar.JarBuilder$7.execute(JarBuilder.java:743)
at org.pantsbuild.tools.jar.JarBuilder.getAdditions(JarBuilder.java:1188)
at org.pantsbuild.tools.jar.JarBuilder.getEntries(JarBuilder.java:1093)
at org.pantsbuild.tools.jar.JarBuilder.write(JarBuilder.java:1009)
at org.pantsbuild.tools.jar.Main.doRun(Main.java:401)
at org.pantsbuild.tools.jar.Main.run(Main.java:367)
at org.pantsbuild.tools.jar.Main.main(Main.java:481)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.martiansoftware.nailgun.NGSession.run(NGSession.java:280)
FAILURE: jar-tool failed
This happens for all cases when I try to bundle/jar a JVM/Java target. I have recently upgraded from 1.17 to 1.26 (migrating py2 to py3). Hopefully there is something simple that I need to change.hundreds-father-404
05/28/2020, 2:35 PMenough-analyst-54434
05/28/2020, 2:44 PMpurple-van-78680
05/28/2020, 2:46 PMpants
script, but that may have been for an earlier version. We are using java 11 in the platform settings. I can download the latest python scriptenough-analyst-54434
05/28/2020, 2:46 PMpurple-van-78680
05/28/2020, 2:47 PM[jvm-platform]
default_platform: java11
platforms: {
'java11': {'source': '11', 'target': '11', 'args': [] },
}
./pants ng-killall
in case there was an old nailgun processenough-analyst-54434
05/28/2020, 2:53 PMpurple-van-78680
05/28/2020, 2:54 PMenough-analyst-54434
05/28/2020, 2:54 PMpurple-van-78680
05/28/2020, 2:58 PM3rdparty/jvm
dependencies if that helps (version 28.2-jre
)enough-analyst-54434
05/28/2020, 3:02 PMpurple-van-78680
05/28/2020, 3:05 PMenough-analyst-54434
05/28/2020, 3:05 PMpurple-van-78680
05/28/2020, 3:06 PMenough-analyst-54434
05/28/2020, 3:10 PMdiff --git a/src/python/pants/backend/jvm/subsystems/jar_tool.py b/src/python/pants/backend/jvm/subsystems/jar_tool.py
index bd02ef3c5..c6ad8d12d 100644
--- a/src/python/pants/backend/jvm/subsystems/jar_tool.py
+++ b/src/python/pants/backend/jvm/subsystems/jar_tool.py
@@ -10,12 +10,15 @@ from pants.subsystem.subsystem import Subsystem
class JarTool(JvmToolMixin, Subsystem):
options_scope = "jar-tool"
+ _MAIN = "org.pantsbuild.tools.jar.Main"
+
@classmethod
def register_options(cls, register):
super().register_options(register)
cls.register_jvm_tool(
register,
"jar-tool",
+ main=cls._MAIN,
classpath=[JarDependency(org="org.pantsbuild", name="jar-tool", rev="0.0.16"),],
)
@@ -24,7 +27,7 @@ class JarTool(JvmToolMixin, Subsystem):
self.tool_classpath_from_products(
context.products, "jar-tool", scope=self.options_scope
),
- "org.pantsbuild.tools.jar.Main",
+ cls._MAIN,
jvm_options=self.get_options().jvm_options,
args=args,
workunit_name="jar-tool",
purple-van-78680
05/28/2020, 3:15 PMenough-analyst-54434
05/28/2020, 3:18 PM$ PATCH_TARGET=$(find ~/.cache/pants/setup/*/1.26.0_*/lib/*/site-packages/pants/backend/jvm/subsystems/jar_tool.py)
Which for me is:
$ echo $PATCH_TARGET
/home/jsirois/.cache/pants/setup/bootstrap-Linux-x86_64/1.26.0_py36/lib/python3.6/site-packages/pants/backend/jvm/subsystems/jar_tool.py
purple-van-78680
05/28/2020, 3:22 PM/Users/jay/.cache/pants/setup/bootstrap-Darwin-x86_64/1.26.0_py37/lib/python3.7/site-packages/pants/backend/jvm/subsystems/jar_tool.py
and the command you just me gave has /Users/jay/.cache/pants/setup/bootstrap-Darwin-x86_64/1.26.0_py37/lib/python3.7/site-packages/pants/backend/jvm/subsystems/jar_tool.py
enough-analyst-54434
05/28/2020, 3:29 PMpurple-van-78680
05/28/2020, 3:30 PM/bootstrap-Darwin-x86_64/pants.ymwVoV/install/lib/python3.7/site-packages/pants/backend/jvm/subsystems/jar_tool.py
which is just a symlinkenough-analyst-54434
05/28/2020, 3:31 PM__pants_shaded__
IIRC.purple-van-78680
05/28/2020, 3:31 PMenough-analyst-54434
05/28/2020, 3:34 PM__shaded_by_pants__
... this is a walk down memory lane.purple-van-78680
05/28/2020, 3:35 PM10:32:16 00:03 [create-monolithic-jar]
10:32:16 00:03 [add-internal-classes]
10:32:16 00:03 [add-dependency-jars]
10:32:16 00:03 [cache]
No cached artifacts for 1 target.
Invalidated 1 target.
10:32:16 00:03 [cache].
Using cached artifacts for 1 target.
enough-analyst-54434
05/28/2020, 3:37 PMpurple-van-78680
05/28/2020, 4:28 PMfancy-queen-20734
05/28/2020, 4:43 PM--add-opens
to jvm options for the jar tool. That might not be very scalable.purple-van-78680
05/28/2020, 5:08 PMenough-analyst-54434
05/28/2020, 5:09 PMpurple-van-78680
05/28/2020, 5:09 PMenough-analyst-54434
05/29/2020, 4:22 PMpurple-van-78680
05/29/2020, 4:23 PMenough-analyst-54434
06/01/2020, 6:20 PMpurple-van-78680
06/01/2020, 6:56 PM--add-opens
sugggestion soon. This is sort of a migration task to a new version, so we can still work using the older pants versions until we can figure out this issue. One note, we use guava as a jvm depency, and have it include in most of our java targets, however, I did notice we have one target (at least one), that was able to bundle as it did not depend on the guava 3rd party dep.