ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Noack <rai...@noacks.net>
Subject Re: Which javac does ant use in its "javac" task?
Date Wed, 16 Jan 2013 23:01:35 GMT
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.feskanich@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.feskanich@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-unsubscribe@ant.apache.org<mailto:user-unsubscribe@ant.apache.or
>>>> g>   For additional commands, e-mail:
>>>> user-help@ant.apache.org<mailto:user-help@ant.apache.org>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail:
>>> user-unsubscribe@ant.apache.org<mailto:user-unsubscribe@ant.apache.org
>>>>   For additional commands, e-mail:
>>> user-help@ant.apache.org<mailto:user-help@ant.apache.org>
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org For 
>> additional commands, e-mail: user-help@ant.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>> For additional commands, e-mail: user-help@ant.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message