Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ant命名空间/目录结构_Ant_Build Process_Build Automation - Fatal编程技术网

使用ant命名空间/目录结构

使用ant命名空间/目录结构,ant,build-process,build-automation,Ant,Build Process,Build Automation,我正在linux上使用命令行与ant合作。我有一个简单的javac构建步骤。这可以正确编译,但它会在构建下创建一个目录结构,就像我的命名空间一样 ie:./build/com/crosse/samplespace/SampleProgram.class 如何将此输出放到一个目录中(在该目录中更容易调用java) 我试过了 <target name="output" depends="compile"> <copy todir="${output}"&g

我正在linux上使用命令行与ant合作。我有一个简单的javac构建步骤。这可以正确编译,但它会在构建下创建一个目录结构,就像我的命名空间一样

ie:./build/com/crosse/samplespace/SampleProgram.class

如何将此输出放到一个目录中(在该目录中更容易调用java)

我试过了

 <target name="output" depends="compile">
            <copy todir="${output}">
                    <fileset dir="${build}" includes="**/*.class"/>
            </copy>
 </target>

但这在我的输出目录中重复了同样的事情。如何使用ant将所有内容都放到一个目录中

或者,如何使用ant步骤将另一个文件复制到该路径的根目录中(apache commons配置文件)


编辑:这主要是一个方便的因素,我厌倦了在相同的3个目录中导航来运行我的程序。

创建一个包含所有文件(类和其他资源)的jar文件怎么样? jar还有一个“default”类,当用户双击它或使用
java-jar
调用它时,会执行该类的主要方法。 您可以使用


除此之外,保持目录结构(在jar之外)也很重要,否则java类加载器在必须加载这些类时不会高兴。还是我把你的问题搞错了

你可以通过使用FlattMapper完成你想做的事情,但我不知道你这么做的理由是什么。

正如carej所指出的,要回答你的问题,你可以使用a。该任务甚至有一个快捷方式:

<copy todir="${output}" flatten="yes">
    <fileset dir="${build}" includes="**/*.class"/>
</copy>
<target name="run" depends="compile">
    <java classname="com.crosse.samplespace.SampleProgram"
          classpath=".:build"/>
</target>