|
I am not the right person to comment what is the best solution, but another option to pass multiple arguments could be to just allow multiple compilerArgument without introducing compilerARguments, i.e., I am hoping maven-compiler-plugin developers will make the right call. Then you'll get something like this: <configuration> In my opinion it is easier to read when there is a collection element around it. a patch for the <compilerArgument> value not working propery. currently the entire value is used as a simple parameter, i think all that needs to happen is that the value needs to be splint on whitespace and each part added as a separate argument. this is what the patch does. a more robust version may handle <cr> <lf> just in case. if someone asks why not simply use <compilerArguments> tag, the reason is simple. currently the arguments tag works like this: <compilerArguments><a>b</b><c/></compilerArguments> becomes javac a b c but it is not uncommon to have parameters with an equal sign, such as -Acom.mycom.myprocessor.param=value, there types of params cannot be modelled in compilerArguments currently because <a=b/> is not valid xml. maybe support should be added for this usecase if values start with a "=" so that <Acom.mycom.myprocessor.param>=value</..> will be properly handled as a single param instead of being split into two. |
||||||||||||||||||||||||||||||||||||||||||||
To be more precise, the Plexus Compiler and more specific, the Plexus CommandLine and Shell classes quotes each argument. Maybe also a suggestion for the Maven debug statement, which ommits these quotes. (It creates an own version of the commandline and output it) Show the real arguments given to javac.
I can try to create a patch for the
<compilerArguments>
<compilerArgument/>
<compilerArgument/>
</compilerArguments>
solution. Is this the best solution?