我正在为我的雇主做一个自动化项目。我们的源代码的每个版本都有一个池。下载修订时,需要创建一个包含一堆第三方包含的目录结构,以最终构建项目。我已经将整个过程自动化,直到让我的脚本(.bat)编译每个特定的可运行java应用程序。这个单一项目有很多应用程序,目录列表如下所示:
Proj Name
-variousincludesfolder1
-variousincludesfolder2
-variousincludesfolder3
-variousincludesfolder4
-runnableapplicationsandmoreincludes
-con.java
现在,我想对con.java进行自动编译,但我不知道从哪里开始。人们建议我尝试使用Ant,但是我使用Eclipse生成的任何自动化Ant文件似乎都足以在存在活动项目文件时构建con.java。有没有使用eclipse自动执行此操作,以便让批处理文件生成.jar本身?
答案 0 :(得分:6)
答案 1 :(得分:3)
您可以定义通配符和模式匹配,以包含/排除构建中的所有类型的文件和文件夹。请查看Ant manual,了解filesets之类的内容如何使用包含和排除过滤器。
另请阅读tutorial。
这是一个简单的构建文件,它可以编译所有java文件并引用所有jar文件。将它放在顶级目录中:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="http://www.ibm.com/developerworks/xml/library/x-antxsl/examples/example2/ant2html.xsl"?>
<project name="Proj Name" default="build" basedir=".">
<property name="src.dir" value="${basedir}" description="base folder where the source files will be found. Typically under /src, but could be anywhere. Defaulting to root directory of the project" />
<property name="build.dir" value="build" description="Where to put build files, separate from src and resource files." />
<path id="master-classpath">
<fileset dir="${basedir}" description="looks for any jar file under the root directory">
<include name="**/*.jar" />
</fileset>
</path>
<target name="build" description="Compile all JAVA files in the project">
<javac srcdir="${src.dir}"
destdir="${build.dir}/classes"
debug="true"
deprecation="true"
verbose="false"
optimize="false"
failonerror="true">
<!--master-classpath is defined above to include any jar files in the project subdirectories(can be customized to include/exclude)-->
<classpath refid="master-classpath"/>
<!--If you want to define a pattern of files/folders to exclude from compilation...-->
<exclude name="**/realm/**"/>
</javac>
</target>
</project>