Solved

using ant for non-compiling

Posted on 2006-10-20
4
243 Views
Last Modified: 2010-03-31
In MS windows, I have a set of source files that I convert to another format using a .bat file and then combine into a single file.
I would like to be able to reprocess by only converting the source files that changed, and then combining the files. This seems
really similar to how ant processes javac, but I don't know how to make this work for .bat files instead. How would I create
an ant build.xml to do this?
for example, I have
aaa.txt
bbb.txt
ccc.txt
...
zzz.txt
using convert.bat on each separate file, I create
aaa.out
bbb.out
ccc.out
...
zzz.out
then
copy aaa.out+bbb.out+ccc.out+...+zzz.out myfile
but I only want to convert.bat the .txt files that have changed, so
that if the ggg.out timestamp is after the ggg.txt timestamp, just
use ggg.out.
 
0
Comment
Question by:lfrohman
  • 2
4 Comments
 
LVL 6

Expert Comment

by:valipotor
ID: 17779300
Hi

On native Unix systems, you should be able to run shell scripts directly. On systems running a Unix-type shell (for example, Cygwin on Windows) execute the (command) shell instead - cmd  for batch files, sh for shell scripts - then pass the batch file or shell script (plus any arguments to the script) as a single command, using the /c or -c switch, respectively. See the above section  for example <exec> tasks executing sh. For batch files, use something like:

<exec dir="." executable="cmd" os="Windows NT">
  <arg line="/c test.bat"/>
</exec>


Use properties. Using ant -Dname=value lets you define values for properties on the Ant command line. These properties can then be used within your build file as any normal property: ${name} will put in value.

If you have more questions, read here:

valipotor
0
 
LVL 6

Expert Comment

by:valipotor
ID: 17779302
0
 

Author Comment

by:lfrohman
ID: 17781344
valipotor,
     This doesn't help me at all, I already know how to call a .bat file, the problem is how
to call the batch file on all the input files, but only if they have a newer timestamp.
0
 
LVL 3

Accepted Solution

by:
KnightFire earned 125 total points
ID: 17787209
You could write a custom ant task to do this, then call it from ant. Would that work for you?
See http://ant.apache.org/manual/develop.html for information on writing your own task, you simply extend org.apache.tools.ant.Task, implement an execute method and setters for any attributes you want the task to have.
Then in your ant build file, you map the name of your new task to the class that implements it (the one you created above).

You could create a task that takes a bat file and a path as an argument, and calls the bat on all files in that path, or something similar.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
DO we need Java installed on a Windows PC and WHY ? 13 99
unix in java example 9 53
recursion example 16 112
java jdbc batch example 8 22
For customizing the look of your lightweight component and making it look opaque like it was made of plastic.  This tip assumes your component to be of rectangular shape and completely opaque.   (CODE)
Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now