包括包含.jar的libs文件夹进行编译



我有以下文件结构:

ServerCode <- src , libs, bin

我试图在src中编译所有代码。Src在顶层和子目录中有两个.java文件。lib包含构建我的项目所需的所有.jar文件。

我写了下面的build.xml,但是当我试图编译它时,编译器抛出错误,无法找到我包含的库的符号错误。

<project default="compile">
    <target name="compile">
        <mkdir dir="bin"/>
        <javac srcdir="src" destdir="bin" classpath="libs/*.jar">
    </target>
</project>

定义包含所有jar的类路径

<target name="compile" depends=""   description="compile the java source files">  
   <javac srcdir="." destdir="${build}">  
        <classpath>  
            <fileset dir="${lib}">  
                <include name="**/*.jar" />  
            </fileset>  
            <fileset dir="${test_lib}">  
                <include name="**/*.jar" />  
            </fileset>  
        </classpath>  
    </javac>  

我不认为你可以在classpath属性中使用模式。我可能是错的。您应该以详细模式(-v选项)运行ant,以查看它如何使用您的类路径属性。我怀疑它将它作为一个字面值字符串传递给javac。

我是这样做的:

<javac target="${javac.target}" source="${javac.source}" destdir="${validator.output.dir}" debug="on"
       nowarn="off"
       memorymaximumsize="128m" fork="true">
    <classpath refid="validator.module.production.classpath"/>
    <src>
        <dirset dir="Validator">
            <include name="src"/>
        </dirset>
    </src>
</javac>

<path id="validator.module.production.classpath">
    <fileset dir="Validator/lib/-validator" includes="**/*.jar"/>
</path>

其中一些代码是由我的IDE生成的,所以它有点冗长,但你明白了。

尝试在http://ant.apache.org/manual/using.html上提到的方法,而不是在javac

中提供classPath属性。
  <classpath>
      <pathelement location="libs/*.jar"/>
    </classpath>

你还可以通过其他方式浏览上面提到的链接

相关内容

  • 没有找到相关文章

最新更新