Palpite: seu script está operando sob set -e
(sinônimo: set -o errexit
), o que faz com que o shell saia se algum comando retornar um status diferente de zero (indicando falha convencionalmente). Em caso afirmativo, sairá se diff
encontrar alguma diferença, porque diff
retornará o status 1 se encontrar diferenças. Se este for o problema, mude essa linha para
diff -r "$originalJarExtracted" "$assembledJarExtracted" >"target/$diffList" ||
[ $? -eq 1 ]
Em seguida, o script só sairá se diff
retornar um status diferente de 0 (sem diferença) ou 1 (diferenças), ou seja, somente se houver um erro, como um arquivo ausente.