Hi, just for your understanding:
Ant's javac task is not a compiler itself, but calls the specified
compiler (if not specified otherwise, the javac of the jdk you are
running ant with.)
BUT: In the most cases Ant is passing a resolved classpath to the compiler.
Regarding the specified order of the classpath elements, this works as
expected.
However, there is a trap, you can run into:
Ant resolves the Path and it's elements at Parsing-Time and removes
entries that are obsolete at this time.
If you expect something in your classpath, that is not there when you
start Ant (f.e. something you have generated or copied in the prepare
target)
you will fail.
There are some workarounds. easiest ist split the build with an <ant> or
<antcall> task.
cheers
rainer
Am 16.01.2013 19:23, schrieb Maurice Feskanich:
You may have already done this, but at this point I'd say run ant in
fully verbose, debug mode and see if anything shows up that indicates
what it going on. Sorry I couldn't provide more help.
Maury
On 01/16/13 01:33, WebServices Development wrote:
Thank you Maury.
I made the change and tested it on both linux and windows. It did
not work in both environments. Actually, in my various trials, I had
tried this one also before, but it doesn't work. It seems, ANT is not
parsing it correctly
-----Original Message-----
From: Maurice Feskanich [mailto:maurice.feskan...@oracle.com]
Sent: Tuesday, January 15, 2013 20:57
To: Ant Users List
Subject: Re: Which javac does ant use in its "javac" task?
According to the Ant 1.8.4 docs, wildcards are only supported in the
'location' attribute of a pathelement or a classpath. Based on this,
your classpath element should be:
<classpath>
<pathelement
location="/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/WebContent/WEB-INF/lib/*"/>
<pathelement location="/opt/local/software/websphere/v7/lib/*"/>
<pathelement location="/opt/local/software/websphere/v7/plugins/*"/>
</classpath>
Maury
On 01/15/13 15:38, WebServices Development wrote:
Sorry, there was a typo on javac call classpath. It should have been
JAVA_HOME=/opt/local/software/websphere/v7/java/bin
export JAVA_HOME
JDK_HOME=/opt/local/software/websphere/v7/java
export JDK_HOME
/opt/local/software/websphere/v7/java/bin/javac -verbose -d
/home/ab/antcode/build/classes -classpath
/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/WebContent/WEB-INF/
lib/*:/home/ab/antcode/build/classes:/opt/local/software/websphere/v7/
lib/*:/opt/local/software/websphere/v7/plugins/*: -sourcepath
/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/src -target 1.6
-g:none -source 1.6
/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/src/com/xxx/xxxStar
ter/event/*.java
/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/src/com/xxx/xxxStar
ter/vo/*.java> commandline.log 2>&1
Command line
-classpath
/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/WebContent/WEB-INF/lib/*:/home/ab/antcode/build/classes:/opt/local/software/websphere/v7/lib/*:/opt/local/software/websphere/v7/plugins/*:
Ant
<classpath
path="/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/WebContent/WE
B-INF/lib/*;/opt/local/software/websphere/v7/lib/*;/opt/local/software
/websphere/v7/plugins/*"/>
_____________________________________________
From: WebServices Development
Sent: Tuesday, January 15, 2013 6:06 PM
To: Ant Users List
Subject: RE: Which javac does ant use in its "javac" task?
Actually, currently I am testing with hardcoding the classpath as in
below task definition. I ultimately want to create a classpath from a
string, but that is next question, if I can get this working. This is
the same path I am using in my commandline javac call
<!-- Compile Classes -->
<target name="compile" depends="init, prepare"
description="Compile the classes">
<property name="myclasspath" refid="test.classpath"/>
<echo message="myclasspath= ${myclasspath}"/>
<javac srcdir="${src.paths}"
failonerror="true"
includeantruntime="false"
destdir="${build.dir}/classes"
debug="${javac.debug}"
debuglevel="${javac.debuglevel}"
verbose="true"
memoryMaximumSize="${javac.memoryMaximumSize}"
fork="yes"
executable="/opt/local/software/websphere/v7/java/bin/javac"
source="1.6"
target="1.6">
<classpath
path="/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/WebContent/WEB-INF/lib/*;/opt/local/software/websphere/v7/lib/*;/opt/local/software/websphere/v7/plugins/*"/>
</javac>
</target>
Commandline javac call
JAVA_HOME=/opt/local/software/websphere/v7/java/bin
export JAVA_HOME
JDK_HOME=/opt/local/software/websphere/v7/java
export JDK_HOME
/opt/local/software/websphere/v7/java/bin/javac -verbose -d
/home/ab/antcode/build/classes -classpath
/home/ab/antcode/RAD8ProjectsWAS7Server/CSXStarterWeb/WebContent/WEB-I
NF/lib/*:/home/ab/antcode/build/classes:/opt/local/software/websphere/
v7/lib/*:/opt/local/software/websphere/v7/plugins/*: -sourcepath
/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/src -target 1.6
-g:none -source 1.6
/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/src/com/xxx/xxxStar
ter/event/*.java
/home/ab/antcode/RAD8ProjectsWAS7Server/StarterWeb/src/com/xxx/xxxStar
ter/vo/*.java> commandline.log 2>&1
Thanks for any help you can provide.
-----Original Message-----
From: Maurice Feskanich [mailto:maurice.feskan...@oracle.com]
Sent: Tuesday, January 15, 2013 3:41 PM
To: Ant Users List
Subject: Re: Which javac does ant use in its "javac" task?
Without knowing how you are creating the classpath for ant to use,
it is impossible to say why it is not working for you. It may be
something as simple as using the wildcard in a way that has ant
expanding it rather than it being passed through to javac.
Maury
On 01/14/13 17:23, WebServices Development wrote:
I am using ant 1.8.4. My JAVA_HOME is set to the location of JDK
7. I have a set of classes that use a list of jars from a given
library location.
When I use command line jdk to do the compile it gives different
results from using ant script to do the compile. The classpath
definition is same in both cases.
In the command line execution, it expands the wildcard classpath
that is introduced in JDK 6.
In ANT execution, it does not expand the list, so the compile fails.
From what I have read, ANT is supposed to support wildcard
classpaths with version 1.8.2 and I am on version 1.8.4.
So, the questions I have are
- Which javac does ant use? Is it in the ANT code that doesn't
process the wildcard classpath?
- What role does JAVA_HOME play when using ANT?
- How can I resolve the issue, so I can use ANT with wildcard
classpath ?
Thank you
-----------------------------------------
This email transmission and any accompanying attachments may contain
CSX privileged and confidential information intended only for the use
of the intended addressee. Any dissemination, distribution, copying
or action taken in reliance on the contents of this email by anyone
other than the intended recipient is strictly prohibited. If you
have received this email in error please immediately delete it and
notify sender at the above CSX email address. Sender and CSX accept
no liability for any damage caused directly or indirectly by receipt
of this email.
---------------------------------------------------------------------
To unsubscribe, e-mail:
user-unsubscr...@ant.apache.org<mailto:user-unsubscr...@ant.apache.or
g> For additional commands, e-mail:
user-h...@ant.apache.org<mailto:user-h...@ant.apache.org>
---------------------------------------------------------------------
To unsubscribe, e-mail:
user-unsubscr...@ant.apache.org<mailto:user-unsubscr...@ant.apache.org
For additional commands, e-mail:
user-h...@ant.apache.org<mailto:user-h...@ant.apache.org>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org For
additional commands, e-mail: user-h...@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org