title: Java, Eclipse, Ant, JUnit, Hudson, SVN, native libraries; can they all coexist?
body: <p><strong>What is the most proper way to accomplish all of the following:</strong></p>
  
  <ul>
  <li>Create a project in Eclipse</li>
  <li>With an Apache Ant buildfile</li>
  <li>That Hudson (or another more recommended CI system?) uses</li>
  <li>And support for JUnit tests that are run by both Ant/Hudson and Eclipse</li>
  <li>And check the proper folder structure into SVN so that future developers can replicate the build, and Hudson can automatically grab from SVN and run the Ant file to build/test/deploy the project</li>
  <li>And the project has native libraries, if that makes any difference (I've already written an Ant task that can download and unzip the proper library files depending on the OS)</li>
  </ul>
  
  <hr>
  
  <p>I already have my project with some source files and an Ant file, but I've been having trouble integrating it with Eclipse in an organized manner, so I would really love to start from a fresh Eclipse project, set it up correctly, and then copy my Ant file and my source files piece-by-piece into the project in the most Eclipse-compatible way.</p>
  
  <p>I will be continuing to play around with everything in an attempt to get it working as I like it. But if you have experience with this sort of thing, perhaps at your workplace, please give as much information as you can.</p>
  
  <p>My main goal here is to learn this once and use it in my future projects. For now, I am developing a client-server application consisting of a JOGL applet frontend (using JNLP files) and an unattended server app. Up until now I've been doing it all by hand:  writing and building in Eclipse, dragging the applet jar into my FTP client, SSHing the server jar and restarting it by hand, and all with no testing process. I'm hoping that by the end, the build process will be something like this: test locally on my machine with a copy of the native libraries; commit code changes to SVN; Hudson <code>svn update</code>s, uses the Ant buildfile to compile and run all JUnit tests; if all the tests pass, it proceeds to copy the server jar to my dedicated server and restart the running server instance, and then copy the client jar to my web server.</p>