I found one possible solution.
Earlier in the build script, ant.signjar was called sequentially for all cans (we use gradle to build, more than 20 MB of dependencies). Now I use the methods for the groovy library: withPool (4) and eachParallel {ant.signjar}. This is great for 2 cores in my computer and 4 cores in the build server. (3 times faster)
The second trick is the cache: we use cached signed banks for all RELEASE / NON-SNAPSHOT dependencies. When we run the assembly without cleaning it works faster because it uses cached signed libraries from the assembly directory.
source share