Use alias to avoid having duplicate run IDs?

CWL rookie here. I have checked the specification document before posting.
Scenario: Among several processes used by the pipeline, there are duplicate CommandLineTool objects (same object / process with different inputs and command arguments) which works fine with cwltool. The cwljava compiler we use to convert the pipeline rejected the cwl.json because of those duplicate run ids:

[error] Error translating wf.cwl.json to IR
java.lang.Exception: two different processes with the same name TOOL_NAME

Is this something I should report to the cwljava github repo?

During my search for the workaround, I remembered in WDL, developers can use import xxx.wdl as yyy to make an alias of a task / workflows to avoid having the same object id and causes confusion. Is there any similar alias features in CWL?

Can you share a link to the " cwljava compiler" ? I’m not familiar with that.