I have to use AOT for a project, because it uses Apache Beam/Google Dataflow.
There are two libraries: A and B. A depends on B. Both require AOT.
B uses :aot :all in the project.clj :dev profile, so that it will AOT for tests, but not for the jar.
A uses :aot :all at the top level of its project.clj.
Sometimes, when the program runs, I will get a ClassNotFoundException. The file name for the missing class has a number appended to it (same number every time). The corresponding class file is in the target directory, but the appended number is much higher.
What is going on here? Are my classes being compiled multiple times? Are they being compiled in a nondeterministic order?
Any clues would be appreciated.
So far, this code always works when I build and install locally. It seemed to fail every time after I built it on our build server and served it though a jar repository, but it started working a few hours later when I got on VPN. And then it started throwing the exception again when I brought it in as a dependency of a new project.
Thanks.