为什么蚂蚁认为包不存在?



我有以下目录结构:

MyApp/
    src/main/java/
        com/
            myapp/
                api/
                    IFizz
                    FizzLoader
                impl/
                    core/
                        FizzImpl
                    Cat
                    Dog
                    Tree
                    ...many other objects
    src/test/java
        ...
    build/
    lib/
    ...

我只想编译src/main/java/com/myapp/apicom.myapp.impl.core.FizzImpl下的所有内容,这样CatDogTree等就不会被编译(因此被排除在外)。

在by Ant构建(build.xml)中,我配置了以下main.compile.path:

<path id="src.path">
    <fileset dir="src/main/java/com/myapp/api">
        <include name="**.*java"/>
    </fileset>
</path>
<path id="lib.main.path">
    <fileset dir="lib/main">
        <include name="**/*.jar"/>
    </fileset>
</path>
<path id="main.compile.path">
    <path refid="src.path" />
    <path refid="lib.main.path" />
    <fileset dir="src/main/java" includes="com/myapp/impl/core/**/*" />
</path>

然后是以下main-compile目标:

<target name="main-compile">
    <javac includeantruntime="false" srcdir="src/main/java/com/myapp/api"
            destdir="gen/bin/main" debug="on">
        <classpath refid="main.compile.path"/>
    </javac>
</target>

当我运行main-compile时,我得到以下构建异常:

[javac] /home/myuser/eclipse/workspace/MyApp/src/main/java/com/myapp/api/FizzLoader.java:14: package com.myapp.impl.core does not exist
[javac] import com.myapp.impl.core.FizzImpl;
[javac]  ...(omitting rest of trace but available upon request)

这里,FizzLoader正在创建FizzImpl的一个实例,因此我需要在编译路径上使用它。

为什么Ant看不到我选择性添加到main.compile.path中的com.myapp.impl.core.FizzImpl?提前感谢!

javac的类路径应该引用包含已编译类文件树根的目录和jar文件。它不应该引用Java文件。

类似地,源目录应该引用源文件的包树的根。不指向包树中与包相对应的目录。

您的编译任务应该看起来像

<target name="main-compile">
    <javac includeantruntime="false" 
           srcdir="src/main/java"
           destdir="${gen.bin.main.dir}" 
           debug="on"
           includes="com/myapp/api/**/*.java, com/myapp/impl/core/FizzImpl/**/*.java">
        <classpath refid="lib.main.path"/>
    </javac>
</target>

相关内容

  • 没有找到相关文章

最新更新