如何告诉蚂蚁使用特定的javac可执行文件进行构建?

2022-09-03 17:52:58

如何从命令行判断使用特定的javac可执行文件?ant

我有一个gcj的安装,作为gcc的一部分构建,在我们分发的库中,我希望有一个特定的Java软件构建。但是,它似乎只是使用system-gcc,并且诸如“-Dbuild.compiler”之类的选项似乎希望我指定某种Java类而不是文件路径。

我希望在Makefiles中出现类似于CC的东西。

我相信这真的很简单,我只是在愚蠢。


需要明确的是,如果可能的话,我想避免自己编辑构建文件。难道没有一些标准的方法可以简单地将命令行上的编译器指定为ant吗?我不介意在某种意义上假设构建文件是“表现良好”的。


答案 1

如果您使用的是 Ant 1.6 或更高版本,则可以设置属性 。这使您可以在使用 jikes、jvc、gcj、sj 或您正在使用的任何版本时指定可执行文件的路径。javacfork="yes"javac

  <javac srcdir="${src}"
         destdir="${build}"
         fork="yes"
         executable="/opt/java/jdk1.1/bin/javac"
         compiler="javac1.1"
  />

答案 2

调用 ant 时的参数将使用 Ant 脚本内部命令行中的属性。它使用的形式是:-D

ant -Dmyvar=true

Where 是属性的名称,并且是要在脚本中使用的值。myvartrue

最简单的方法是为javac可执行属性使用属性。

 <target name="compile">  
   <javac srcdir="${src}"
     destdir="${build}"
     fork="${fork}"
     executable="${javac.executable}"
     compiler="${compiler}"/>  
 </target>

然后在命令行上,您可以调用:

ant compile -Djavac.executable=/usr/bin/local/jdk/javac -Dsrc=/home/src -Dbuild=/home/build -Dcompiler=javac1.6 -Dfork=true

推荐