Ant 如何将每个jasper文件编译到自己的目录中?
我试图创建一个ant脚本来编译jasper文件,但我有很多“srcdir”和“destdir”:Ant 如何将每个jasper文件编译到自己的目录中?,ant,jasper-reports,Ant,Jasper Reports,我试图创建一个ant脚本来编译jasper文件,但我有很多“srcdir”和“destdir”: …我希望它将每个文件编译为自己的目录。对于每个“.jrxml”文件 有什么办法吗?您可以使用ant contrib任务在每个jrxml文件上循环,并为每个文件调用jrc任务。如果没有,则需要将其JAR文件复制到Ant安装的lib目录中(如果使用Eclipse,则可以通过转到“窗口>首选项>Ant>运行时”并将JAR添加到“Ant Home Entries”来添加它) 下面定义了一个目标“all”
…我希望它将每个文件编译为自己的目录。对于每个“.jrxml”文件
有什么办法吗?您可以使用ant contrib任务在每个jrxml
文件上循环,并为每个文件调用jrc
任务。如果没有,则需要将其JAR文件复制到Ant安装的lib
目录中(如果使用Eclipse,则可以通过转到“窗口>首选项>Ant>运行时”并将JAR添加到“Ant Home Entries”来添加它)
下面定义了一个目标“all”
,它将选择当前目录下的所有jrxml
文件。对于这些文件中的每个文件,都将调用“jrc”
目标,相应的文件将由属性jrxml.file
引用
在此任务中,将使用任务检索jrxml
文件所在的目录,并使用任务检索jrxml
文件的名称。构建的.jasper
文件将在与jrxml
文件同名的文件夹下创建。(首先需要使用任务创建它)
结果将是
+folder
+--jrxml
+----Example1.jrxml
+----Example1
+------Example1.jasper
+----Example2.jrxml
+----Example2
+------Example2.jasper
能否提供不同
srcdir
和destdir
的值示例?我认为ant contrib任务正是你想要的。
<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
<target name="all">
<foreach target="jrc" param="jrxml.file">
<path>
<fileset dir=".">
<include name="**/*.jrxml"/>
</fileset>
</path>
</foreach>
</target>
<target name="jrc">
<dirname property="jrxml.dir" file="${jrxml.file}"/>
<basename property="jrxml.filename" file="${jrxml.file}" suffix="jrxml"/>
<mkdir dir="${jrxml.dir}/${jrxml.filename}"/>
<jrc srcdir="${jrxml.dir}"
destdir="${jrxml.dir}/${jrxml.filename}"
tempdir="${jrxml.dir}/${jrxml.filename}"
xmlvalidation="true">
<classpath refid="classpath"/>
<include name="${jrxml.filename}.jrxml"/>
</jrc>
</target>
+folder
+--jrxml
+----Example1.jrxml
+----Example2.jrxml
+folder
+--jrxml
+----Example1.jrxml
+----Example1
+------Example1.jasper
+----Example2.jrxml
+----Example2
+------Example2.jasper