Yes. Eclipse uses .project and .classpath. Ant uses build.xml (and an often used file build.properties).
In contrast to Maven or Gradle Ant doesn't come with a built in dependency manager. So just declaring "I need JUnit 4.12" doesn't work. - place the jars by yourself in a directory (e.g. "/libs") and reference that (libs are stored in vcs) - have a "download script" that places the jars inside that folder (libs are not stored in vcs, only the dependency declaration in the download script) - use the maven tasks for downloading the files (see Ant's fetch.xml) - use Ivy as dependency manager and use it to define the path's (see Ant's check.xml) Jan > -----Ursprüngliche Nachricht----- > Von: Dennis Putnam [mailto:d...@bellsouth.net] > Gesendet: Montag, 18. Februar 2019 14:35 > An: user@ant.apache.org > Betreff: Re: AW: Javac Run By Ant Script is Unable to Find External > Jars > > Hi Jan, > > Thanks. Things are starting to come together in my head. If I > understand, ant doesn't need the Eclipse .classpath at all and only the > classpath suggested by Matt is used by ant, right? > > On 2/18/2019 8:11 AM, Jan Matèrne (jhm) wrote: > > Matt is correct: you are mixing Eclipse and Ant definitions. > > So here some points by me: > > * There is no default behaviour of <javac>. You have to specify the > paths the compiler should use by yourself. > > * <javac ... classpath=".classpath"/> means, that the file or > directory ".classpath" should be used for classpath. But the > .classpath-file is not a jar file, it is a xml file. > > * I try to "translate" the .classpath: > > > > Eclipse: <classpathentry including="**/*.java" kind="src" > output="target/classes" path="src"> > > Ant: <javac src="src" dest="target/classes" includes=**/*.java"/> > > > > Eclipse: <classpathentry kind="con" > path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal. > debug.ui.launcher.StandardVMType/JavaSE-1.7"> > > Ant: not used (include current Java runtime) > > > > Eclipse: <classpathentry kind="lib" path="/lib/java-ext/json-simple- > 1.1.1/json-simple-1.1.1.jar"/> > > Ant: <javac><classpath><path entry="/lib/java-ext/json-simple- > 1.1.1/json-simple-1.1.1.jar"/></classpath></javac> > > ore more generic > > <javac><classpath><fileset dir="lib" > > includes="**.*.jar"/></classpath></javac> > > > > Eclipse: <classpathentry kind="output" path="target/classes"/> > > Ant: not used (I think this controlls the "export behaviour" for > inter-project dependencies) > > > > So combined (and tuned): > > <property name="build.classes" value="target/classes"/> > > <mkdir dir="${build.classes}"/> > > <javac src="src" dest="${build.classes}"> <!-- includes not > required --> > > <classpath> > > <fileset dir="lib" includes="**.*.jar"/> > > </classpath> > > </javac> > > > > > > > > Jan > > > >> -----Ursprüngliche Nachricht----- > >> Von: Matt Bertolini [mailto:viper2...@gmail.com] > >> Gesendet: Sonntag, 17. Februar 2019 18:45 > >> An: Ant Users List > >> Betreff: Re: Javac Run By Ant Script is Unable to Find External Jars > >> > >> Hi Dennis, > >> > >> I think you might be mixing up Eclipse concepts and Ant concepts and > >> that might be causing some extra confusion. Based on your original > >> email, the compiler is having issues finding your third-party > >> dependencies. I believe Jaikiran is correct in saying that the > >> <javac> task needs to be given some sort of classpath. The > .classpath > >> file is an Eclipse concept and unless there is some sort of > >> Eclipse/Ant plugin I am not aware of, the .classpath file will have > >> no effect on Ant’s, <javac> task. Also, I don’t believe the <javac> > >> task has a default value for the classpath attribute. If no > classpath > >> or classpathref is specified then the compiler is not passed any > classpath information. > >> > >> I would start by locating the folder where your third-party > >> dependencies are and create a <path> element containing them like > this: > >> > >> <path id="compile-classpath"> > >> <fileset dir="/the/path/to/your/third/party/jars"/> > >> </path> > >> > >> Once you have a path defined you can pass the classpath to the > >> <javac> task using a refid like this: > >> > >> <javac srcdir="src" destdir="bin" includeantruntime="false" > >> classpathref="compile-classpath"/> > >> > >> Try that and see how it goes. > >> > >> Matt Bertolini > >> > >> On Sun, Feb 17, 2019 at 10:02 AM Dennis Putnam <d...@bellsouth.net> > >> wrote: > >> > >>> I apologize for being a pest but this is a problem I cannot resolve > >> on > >>> my own. The more I read the more confusing it gets. It seems like > >>> there are thousands of ways to accomplish what I want but none make > >>> any more sense than what I have. Is there no one that can help me > >>> debug this problem or at least point me in the right direction? > >>> > >>> On 2/14/2019 9:42 AM, Dennis Putnam wrote: > >>> > >>> Hi Jaikiran, > >>> > >>> Thanks for the reply. I thought the classpath parameter defaulted > to > >>> "basedir"/.classpath. In any case I made the following change: > >>> > >>> <javac srcdir="src" destdir="bin" includeantruntime="false" > >>> classpath=".classpath" /> > >>> > >>> > >>> Unfortunately that didn't help. The ant output is exactly the same. > >>> FWIW here is .classpath: > >>> > >>> <?xml version="1.0" encoding="UTF-8"?> <classpath> > >>> <classpathentry including="**/*.java" kind="src" > >>> output="target/classes" path="src"> > >>> <attributes> > >>> <attribute name="optional" value="true"/> > >>> <attribute name="maven.pomderived" > >> value="true"/> > >>> </attributes> > >>> </classpathentry> > >>> <classpathentry kind="con" > >>> > >> > path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal. > >> debug.ui.launcher.StandardVMType/JavaSE-1.7"> > >>> <attributes> > >>> <attribute name="maven.pomderived" > >> value="true"/> > >>> </attributes> > >>> </classpathentry> > >>> <classpathentry kind="lib" > >>> path="/lib/java-ext/json-simple-1.1.1/json-simple-1.1.1.jar"/> > >>> <classpathentry kind="con" > >>> path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> > >>> <attributes> > >>> <attribute name="maven.pomderived" > >> value="true"/> > >>> </attributes> > >>> </classpathentry> > >>> <classpathentry kind="output" path="target/classes"/> > >>> > >>> The "lib" path is correct. I am guessing that the next tag > >> essentially > >>> points the pom.xml so here it is in case it matters: > >>> > >>> <project xmlns="http://maven.apache.org/POM/4.0.0" > >>> <http://maven.apache.org/POM/4.0.0> xmlns:xsi= > >>> "http://www.w3.org/2001/XMLSchema-instance" > >>> <http://www.w3.org/2001/XMLSchema-instance> > >>> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > >>> http://maven.apache.org/xsd/maven-4.0.0.xsd" > >>> > <http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven- > >> 4. > >>> 0.0.xsd> > >>> <modelVersion>4.0.0</modelVersion> > >>> <groupId>KCBSEvents</groupId> > >>> <artifactId>KCBSEvents</artifactId> > >>> <version>0.0.1-SNAPSHOT</version> > >>> <build> > >>> <sourceDirectory>src</sourceDirectory> > >>> <resources> > >>> <resource> > >>> <directory>src</directory> > >>> <excludes> > >>> <exclude>**/*.java</exclude> > >>> </excludes> > >>> </resource> > >>> </resources> > >>> <plugins> > >>> <plugin> > >>> <artifactId>maven-compiler-plugin</artifactId> > >>> <version>3.7.0</version> > >>> <configuration> > >>> <source>1.7</source> > >>> <target>1.7</target> > >>> </configuration> > >>> </plugin> > >>> </plugins> > >>> </build> > >>> <dependencies> > >>> <dependency> > >>> <groupId>org.apache.httpcomponents</groupId> > >>> <artifactId>httpclient</artifactId> > >>> <version>4.5.6</version> > >>> </dependency> > >>> <dependency> > >>> <groupId>commons-io</groupId> > >>> <artifactId>commons-io</artifactId> > >>> <version>2.5</version> > >>> </dependency> > >>> <dependency> > >>> <groupId>org.apache.httpcomponents</groupId> > >>> <artifactId>httpcore</artifactId> > >>> <version>4.4.10</version> > >>> </dependency> > >>> <dependency> > >>> <groupId>commons-codec</groupId> > >>> <artifactId>commons-codec</artifactId> > >>> <version>1.10</version> > >>> </dependency> > >>> <dependency> > >>> <groupId>commons-logging</groupId> > >>> <artifactId>commons-logging</artifactId> > >>> <version>1.2</version> > >>> </dependency> > >>> </dependencies> > >>> > >>> Presumably the maven libraries are found from the zipfilesets in > the > >>> ant script. > >>> > >>> On 2/14/2019 8:55 AM, Jaikiran Pai wrote: > >>> > >>> Hi Dennis, > >>> > >>> On 13/02/19 11:56 PM, Dennis Putnam wrote: > >>> > >>> <javac srcdir="src" destdir="bin" includeantruntime="false" /> > >>> > >>> I don't see any classpath being passed to the javac task in your > >> build > >>> script. You should be passing a classpath containing your jars that > >>> are required to compile the source. There's more than one way to do > >> that. > >>> The javac task manual has more details about > >>> ithttps://ant.apache.org/manual/Tasks/javac.html > >>> > >>> > >>> -Jaikiran > >>> > >>> > >>> ------------------------------------------------------------------- > - > >>> - 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