Took a quick look through your whole email. I'd suggest, putting this in
your compile target:
<target name="compile" depends="init">
<echo message = "*** Attempting to compile src.dir [${src.dir}]"/>
<javac sourcepath="${src.dir}" srcdir="${src.dir}" ...
...
</target>
Obviously, don't use the ellipses ;) Really all I mean is insert the echo
statement as I've done above... You'll probably see the problem right
away :)
It may be you need to insert the basedir attribute for the <project>
element...
I am curious, what directory are you "standing in" when you kick off your
build? I see that src.dir is a relative directory (meaning
../projects/modules/src)
Personally, I try to not list my directory structures that way. Instead I
prefer to always denote a "root" directory and build everything from that
perspective.
Something like:
project.root = foo
src.dir = ${project.root}/modules/src
Yeah, I know bad example... But you get the idea...
On Sat, 20 Aug 2011, Ego wrote:
I've read thoroughly the manual and examples but still can't find the reason
for this behavior. First, some pointers to state my case.
- Environment: Windows XP SP3, Ant 1.8.1, jdk1.6.0_02
- My project builds and run fine from the cmdline, provided that the CLASSPATH env.
variable is set. I can even get a working jar executable from it, so the manifest
file (created manually) is also ok. So I tried to repeat the development &
deployment process using Ant.
First, I deleted the CLASSPATH env variable to avoid problems. Rebooted my
system.
This is my package structure (relative paths):
[root.dir]\ant builfiles\ //contains the xml buildfiles for my
projects
[root.dir]\projects\
[root.dir]\projects\modules\
[root.dir]\projects\modules\src\
[root.dir]\projects\modules\src\packages\ // source code for general purpose auxiliary
// classes, w/ subpackages
[root.dir]\projects\modules\src\apps\ // source code for the actual project classes
[root.dir]\projects\modules\src\resources\ // icons and other files required by projects
[root.dir]\projects\WEB-INF\
[root.dir]\projects\WEB-INF\build\ // destdir for the <javac> task
[root.dir]\projects\WEB-INF\dist\ // destdir for the <jar> task
Both the build.xml and build.properties files are located in the "ant
buildfiles" folder.
The following is the build.properties file:
src.dir=../projects/modules/src
build.dir=../projects/WEB-INF/build
dist.dir=../projects/WEB-INF/dist
project.name=gdv
main-class=apps.gdv.v1_0_0.GDVLauncher
jar-classpath=.\\gdv.jar // the double backslash is an escape
sequence
// and it works fine (more details later)
and this is build.xml file:
<?xml version="1.0"?>
<project name="gdv" default="run">
<property file="build.properties"/>
<target name="clean">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="init" depends="clean">
<echo>Creating the build directories</echo>
<mkdir dir="${build.dir}"/>
<mkdir dir="${dist.dir}"/>
<!-- this section is an alternate method to include resource files:
<copy todir="${build.dir}/resources">
<fileset dir="${src.dir}/resources"/>
</copy>
Basically is a workaround to get a jar file containing the resource files and a valid manifest despite the whenmanifestonly="skip" property set in the <jar> task. I inspected the resulting manifest file and found it exactly as expected. Manifest and resources are present, the packages with the bytecode obviously not (compilation fails).
-->
</target>
<target name="compile" depends="init">
<javac sourcepath="${src.dir}" srcdir="${src.dir}"
destdir="${build.dir}"
includeantruntime="false"
debug="on"
optimize="on"
fork="true">
<compilerarg value="-Xlint:unchecked"/>
<compilerarg value="-Xlint:deprecated"/>
<compilerarg value="-g"/>
<include name="${src.dir}/packages/sde/actor"/>
<include name="${src.dir}/packages/sde/semaphore"/>
<include name="${src.dir}/packages/sde/monitor"/>
<include name="${src.dir}/packages/synch"/>
<include name="${src.dir}/apps/gdv/v1_0_0"/>
<include name="${src.dir}/resources/gdv/icons"/>
</javac>
</target>
<target name="jar" depends="compile">
<jar destfile="${dist.dir}/${ant.project.name}.jar"
basedir="${build.dir}"
whenmanifestonly="skip"
>
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
<attribute name="Classpath" value="${jar-classpath}"/>
<!-- Who is building this jar? -->
<attribute name="Built-By" value="${user.name}"/>
<!-- Information about the program itself -->
<attribute name="Implementation-Vendor" value="Bogus Inc."/>
<attribute name="Implementation-Title" value="gdv"/>
<attribute name="Implementation-Version" value="1.0.0"/>
<!-- details -->
<attribute name="Sealed" value="false"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="${dist.dir}/${ant.project.name}.jar" fork="true"/>
</target>
</project>
Finally, here's the verbose output of the ant command:
Apache Ant version 1.8.1 compiled on April 30 2010
Trying the default build file: build.xml
Buildfile: D:\Workspaces\Java\ant buildfiles\build.xml
Detected Java version: 1.6 in: C:\Programmi\Java\jdk1.6.0_02\jre
Detected OS: Windows XP
parsing buildfile D:\Workspaces\Java\ant buildfiles\build.xml with URI =
file:/D:/Workspaces/Java/ant%20buildfiles/build.xml
Project base dir set to: D:\Workspaces\Java\ant buildfiles
parsing buildfile
jar:file:/C:/apache-ant-1.8.1/lib/ant.jar!/org/apache/tools/ant/antlib.xml with
URI =
jar:file:/C:/apache-ant-1.8.1/lib/ant.jar!/org/apache/tools/ant/antlib.xml from
a zip file
[property] Loading D:\Workspaces\Java\ant buildfiles\build.properties
Build sequence for target(s) `run' is [clean, init, compile, jar, run]
Complete build sequence is [clean, init, compile, jar, run, ]
clean:
[delete] Deleting directory D:\Workspaces\Java\projects\WEB-INF\build
[delete] Deleting directory D:\Workspaces\Java\projects\WEB-INF\build
[delete] Deleting directory D:\Workspaces\Java\projects\WEB-INF\dist
[delete] Deleting directory D:\Workspaces\Java\projects\WEB-INF\dist
init:
[echo] Creating the build directories
[mkdir] Created dir: D:\Workspaces\Java\projects\WEB-INF\build
[mkdir] Created dir: D:\Workspaces\Java\projects\WEB-INF\dist
compile:
[javac] No sources found.
jar:
[jar] Warning: skipping jar archive
D:\Workspaces\Java\projects\WEB-INF\dist\gdv.jar because no files were included.
[jar] Warning: skipping jar archive
D:\Workspaces\Java\projects\WEB-INF\dist\gdv.jar because no files were included.
run:
[java] Executing 'C:\Programmi\Java\jdk1.6.0_02\jre\bin\java.exe' with
arguments:
[java] '-jar'
[java] 'D:\Workspaces\Java\projects\WEB-INF\dist\gdv.jar'
[java]
[java] The ' characters around the executable and arguments are
[java] not part of the command.
[java] Unable to access jarfile
D:\Workspaces\Java\projects\WEB-INF\dist\gdv.jar
BUILD SUCCESSFUL
Total time: 5 seconds
I apologize for this long, boring report, I hope you find the time to read it entirely.
Any help will be greatly appreciated, thanks in advance for your patience.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org
Scot P. Floess RHCT (Certificate Number 605010084735240)
Chief Architect FlossWare http://sourceforge.net/projects/flossware
http://flossware.sourceforge.net
https://github.com/organizations/FlossWare
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org