I’m trying to override Ant compiler attributes via the command line so that all ‘javac’ tasks use my specified compiler. The problem I’ve run into is that any target that sets its own value for compiler overrides the one that I set at the commmand line. So, even though I’m entering the following command.
ant -Dbuild.compiler=mycompiler
Any target that has the following is going to use the modern compiler instead of mycompiler because of that compiler=’modern’ attribute
<javac srcdir='.' destdir='${classes.dir}/core' compiler='modern' encoding='UTF-8'> <include name='org/**' /> <include name='com/**' /> <compilerarg line='${config.build.compilerarg}' /> </javac>
Is there any way to override this from the command line, or am I stuck editing the build file?
The Ant
javactask documentation says:It sounds as if you can either specify the global build.compiler property or set a specific compiler attribute.
So, it looks like you will need to modify your build file and either:
remove the compiler attribute from the javac calls and allow the global build.compiler setting to cascade down
change the values of the compiler attribute from a hard-coded string compiler=’modern’ to be property compiler=’${javac.compiler}’