You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by st...@apache.org on 2003/09/27 09:04:19 UTC
cvs commit: ant welcome.html
stevel 2003/09/27 00:04:19
Modified: . Tag: ANT_16_BRANCH welcome.html
Log:
Updated welcome note. written in OpenOffice, hence the " strings, and other quirks.
Revision Changes Path
No revision
No revision
1.2.2.1 +274 -124 ant/welcome.html
Index: welcome.html
===================================================================
RCS file: /home/cvs/ant/welcome.html,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -u -r1.2 -r1.2.2.1
--- welcome.html 9 Jul 2002 21:05:49 -0000 1.2
+++ welcome.html 27 Sep 2003 07:04:19 -0000 1.2.2.1
@@ -1,124 +1,274 @@
-<html>
-<head>
-<title>Welcome to Ant1.5</title>
-</head>
-<body bgcolor="#ffffff">
-<h1>Welcome to Ant1.5</h1>
-Hello, and welcome to Ant1.5
-<p>
-For new users to Ant, welcome to a new way to build your software.
-<p>
-For veteran Ant users, its been, what nine months since Ant 1.4.1
-shipped, and we've been as busy enhancing it as you've been using it.
-<p>
-
-We know you've been using Ant, not just from the all the bug reports we
-see, but from the awards we've been getting from JavaWorld and SD Magazine
-and from the fact that it is now clearly a mainstream product. Every quality IDE,
-from the Open Source projects: Emacs, NetBeans, Eclipse, JEdit, to the
-commercial offerings such as IntelliJ IDEA and JBuilder now have high
-quality Ant integration either built in or available as a
-download. And they do that not just because it improves their products,
-giving users the best of both worlds -great editors and a great build
-process, but because Java developers are starting to expect Ant (and
-JUnit) everywhere.
-<p>
-Even in mid-2001, if you said you were using Ant in your project, people
-would stare at you. Now, as long as you are talking with Java developers
-and not management or your family and friends, people will nod, shrug
-and maybe ask you questions about build file and Ant configurations. The good
-news: Ant 1.5 includes more helpful error messages and a new
-<tt>-diagnostics</tt> command to look at your Ant installation and help work out why
-things arent working.
-<p>
-Now, when you tell people you work on Ant in your spare time,
-people used to give you very funny stares; now they ask you about how to
-set up automated build processes, or deploy to some random app server.
-The good news: Ant 1.5 makes it easier to answer those questions.
-
-The other sign of mainstream is that there are also books on the
-subject, first Java Tools for Extreme Programming, then Ant: The
-Definitive Guide, and the first Ant1.5 book, Java Development with Ant,
-due to ship at the end of the month. (Steve says: I prefer the one with
-my name on the cover as co-author, but I'm biased).
-As usual, the manual has improved too:
-regardless of whether you need a book to work with Ant or not, you need
-that on-line documentation. And as usual, any extra contributions to the
-docs are welcome indeed.
-<p>
-Ant has also influenced how projects are built. Now when you download
-any open source project, or work with a closed source team, you expect
-to see a file called build.xml there. Equally important, you expect that
-build file to compile and run a set of tests using JUnit or a derivative
-thereof; if they are missing, you worry.
-<p>
-Together, Ant and JUnit have transformed the mainstream process for
-building and deploying Java projects. And that's pretty profound, when
-you think about it. What is equally impressive is that this was all done
-as a co-operative effort. Nobody works on Ant full-time; everybody uses
-it to solve their problems, to address their build crises and generally
-get something done in a hurry. It just so happens that the architectural
-model of Java classes bound via introspection to the XML build file
-makes it easy for people to add new tasks, extend existing ones and
-generally ease their way into developing and extending Ant. It is the
-users that have helped Ant become the success it is today, and will keep
-it that way tomorrow.
-<p>
-<h2>What has changed</h2>
-<p>
-So, what is new in Ant1.5? Lots of stuff. You will have to look at the
-<a href="WHATSNEW">whatsnew</a> file to see, but basically the changes
-fall into a number of categories
-<ol>
-<li>Bug fixes. We know, some things were broken in 1.4. In ant1.5 we
-have moved the bugs, fixing the ones we could, and no doubt adding
-different ones. Hopefully the total bug count has decreased.
-<li>Scalability. Changes in <ant> and a few other tasks should
-make it easier to write large, scalable build files.
-<li>Deployment. Take a look at the new <serverdeploy> task, add support
-for your server if it isnt there. Tomcat 4.1 has its own deployment
-tasks incidentally -fetch them from the tomcat pages.
-<li>Ease of use. We have added new attributes to make the archive tasks
-consistent with each other, new error messages for common problems (you
-get a screenful of help when a task wont instantiate, for example), and
-generally try and be helpful. As usual, we will accept contributions to
-the documentation or the code for even more helpfulness. Hey, in ant1.5
-you dont need to double escape the $ sign to preserve it in a string!
-<li>Java 1.4 support. We build and test fine on Java 1.4, and have the
-extensions to javac needed to build code with assertions in. We should
-point out that we have more work to do in this area: if someone wants to
-write an <assertionset> datatype to give users control of which assertions
-to enable, and patch this in to things like the <junit> and
-<java> tasks, things would get very interesting.
-<li>Continuous builds. Automated build tools are becoming more widely
-used; fork options on <javac> and <javadoc> are there to
-stop memory use growth on a continuous process.
-<li>New platforms: MacOS X for owners of those cute little laptops,
-Novell Netware servers, and even z/OS and OS/390 for mainframe
-developers who write their build files on their virtual card punches.
-<li>Conditions. Take a look at the <condition> tag to see what you can
-look for, then at <waitfor> to use the same tests in deployment.
-Finally, notice the <tt>if</tt> and <tt>unless</tt> attributes on
-<fail> for easy halting of the build on a condition, without
-having to resort to conditional targets.
-</ol>
-
-There are many more enhancements, so we hope you will find your build
-projects easier. We have, as usual, jumped through hoops to keep
-existing builds working, even those build files that went out their way
-to not work on Java 1.4 (hint: dont ask for the classic compiler, it has
-gone away). If your build file stops working, and it isnt something listed
-on the 'changes that may break your build' part of the WHATSNEW file, or
-something we know about on bugzilla, please dont hesitate to file a new
-bug report, preferably one with a replicable test and a patch to fix the
-problem.
-<p>
-Thanks,
-<p>
-The Ant development team.
-<p>
-PS: many thanks for Magesh to being the build manager for this release!
-He has been busy since Feb/March organizing it. Magesh -you are so good
-at this you should do it next time too :)
-</body></html>
-
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
+ <TITLE>Welcome to Ant1.5</TITLE>
+</HEAD>
+<BODY LANG="en-US" BGCOLOR="#ffffff" DIR="LTR">
+<H1>Welcome to Ant1.6</H1>
+<P><BR><BR>
+</P>
+<H2>Your life just got better.
+</H2>
+<P>Not in big ways. Your social life isn't going to be helped, though
+with any luck you may now have more time for one. Nor is it going to
+take less time to write your Java code -although we note that running
+<A HREF="http://xdoclet.sf.net/" TARGET="other">XDoclet</A> under Ant
+lets you avoid writing so much code. Nor is a new release of Ant
+likely to provide a fundamental kick-start to the currently somewhat
+subdued technology and software industries.
+</P>
+<P>No, Ant1.6 will not fundamentally change your life. But if you do
+have to get software out on time -"roughly what you asked for,
+roughly when you asked", then Ant1.6 provides lots of little
+improvements over the existing version.
+</P>
+<P>Before we look at those details, lets look at the world of The
+Automated Build.</P>
+<P>Firstly, we'd like to thank everyone for all those awards that
+have been flowing in. The JavaWorld Editors' Choice Award for "Most
+Useful Java Community-Developed Technology", The Java
+Developer's Journal "Editors Choice Award", and Java Pro
+Reader's Choice award for "Most Valuable Java Deployment
+Technology." Wow. That's a lot of awards. Aardman Animations
+keep all their Wallace and Gromit -related oscars in a cabinet in
+their tea room. If the Apache organization had a tea room, those Ant
+awards would be forcing all the other (excellent) Apache products to
+fight hard for their cabinet space.
+</P>
+<P>All those awards come for a reason: everyone, at least everyone
+working on any project of moderate complexity, needs to control their
+build process. Ant is one of the best ways to do it in Java, and,
+over the past four years, it has moved from a tool used simply to
+build Tomcat cross-platform, to a tool used across many open source
+projects, and now to a tool used by almost all Java projects. Indeed,
+pretty much competitor in the Java space is a sibling project under
+the Apache banner, <A HREF="http://maven.apache.org/" TARGET="other">Maven</A>.
+One of the obvious signs of Ant's success is that all the popular
+IDEs, from the Open Source -Emacs JDE, Eclipse, NetBeans and jEdit -
+to the commercial: IntelliJ IDEA, Borland JBuilder- all ship with
+built in Ant support. This lets you use your favourite IDE for what
+it is good at: editing text, creating Java source, refactoring
+existing code, debugging and the like, and you can turn to Ant for
+co-ordinating the build-test-deploy/deliver process. That Ant based
+process can be triggered from keystrokes in the IDE, command line
+invocations for those so inclined, and in automated scheduled builds
+so the machines can keep an eye on the engineers. Another sign is how
+Ant is helping the Java aisle of bookstores fight back against
+attempts by books about Macromedia Flash to take over all the space
+-there are now seven or eight books on the subject, with more on the
+way. Germany and Korea have their own native language books too,
+which shows how global the tool is -in use and in development terms.
+</P>
+<P>The other metric of success is the pre-announcement hints from our
+distant software colleagues in Redmond, Microsoft, of a new build
+tool, "MSBuild", which "might be the single most
+important feature innovation in our pipeline", according to one
+MS developer. That is surely the greatest metric of success: XML
+based build tools are now viewed as so essential to the modern build
+process, that Microsoft has to come up with a competitor to Ant to
+win Java developers over to .NET. Let's hope they discover we like
+ubiquitous JUnit testing too, and refactoring IDEs that create and
+run the tests for us.
+</P>
+<P>Success comes at a price, of course. One price is all those
+support calls. We try and stay on top of the bug reports, but one
+thing we cannot do is fix inconsistencies or things that seem like
+defects if they stand a significant chance of breaking existing
+builds. Its sad, but there are lots of little minor faults with Ant
+that we don't dare fix because, well, things might break. For
+example, why don't if= and unless= clauses also support
+if="${property}" clauses? Alternatively, why isn't it an
+error to use a property that isn't defined. Everyone that has ever
+seen directories called ${build.dir} popping up the source tree will
+understand why that behaviour is not always what you want. Well, we
+could fix these things, but we won't, because backwards compatibility
+is sacred.
+</P>
+<P>That is the other price of success: all those users who have
+existing build files they want to work. And all those IDEs that host
+Ant, and who want an easy upgrade to a new version. This means we
+have lost a lot of the flexibility we used to have in the early days
+of the project, when different versions of Ant could have completely
+different property evaluation algorithms and nobody would bat an
+eyelid. Now, even the most obscure bug fix ends up generating 'you
+broke my build complaints'.
+</P>
+<P>This explains why there will not be the 'incompatible upgrade'
+version of Ant, Ant2.0, that has long been discussed on our web site.
+</P>
+<H2>Where is Ant2.0?</H2>
+<P>For years we have been discussing Ant2.0, the complete rewrite
+version that would be cleaner and faster, and slightly incompatible
+with Ant1.x. It would be the opportunity to take the lessons from the
+1.x line, and support them cleanly. We even got as far as having
+multiple implementations of new Ant engines in the CVS repository,
+especially Mutant and Myrmidion. But we always seemed to have a hard
+time making progress -everyone was too busy using and firefighting
+Ant1.x that nobody got time to work on the 2.x codebase. Which is a
+shame, as all the proposals had interesting ideas.</P>
+<P>After Ant1.5 shipped, the future of Ant effectively resolved into
+one of evolution rather than revolution. There will be no Ant2.0 with
+a complete new engine underneath. There will be no need to run XSL
+transforms over existing build files to move them to the Ant2.0
+world. Instead Ant1.x is getting better underneath the build file
+-improving its internal design while retaining five-nines backwards
+compatibility with existing build files.
+</P>
+<P>And that is what we have been up to.</P>
+<P>Under the hood, Ant1.6 contains some of the most major reworkings
+of the core Ant system yet seen. We haven't finished yet, and are
+holding back some of the more visible developments so we can see what
+works before their release in a product forces us to maintain them.
+But the underlying parts of Ant are now set up for the next stage in
+development.
+</P>
+<P>Whether we call the next version of Ant 1.7 or 2.0 is something we
+have yet to decide. Maybe should call it 3.0 just to surprise people.</P>
+<H2>What has changed</H2>
+<P>Look at the <A HREF="WHATSNEW" TARGET="other">WHATSNEW</A>
+document to get a full list of changes. Here are some of the core
+conceptual differences.</P>
+<H3>No more Java1.1</H3>
+<P>We got fed up of jumping through reflection hoops to do everything
+from weak references to setting file timestamps. After consultation
+with the Ant user mail list, Ant1.6 only runs on Ant1.2 or later. It
+can still cross compile to Java1.1 if that is what you have to do. We
+haven't completely purged all 1.1 references in the docs, or 1.1
+support from the source, but that will come over time.</P>
+<H3>New classloader use.</H3>
+<P>This is going to make people nervous. If there is one thing Java
+developers have learned over time, only the very naive, the very
+brave, or the very competent do things with classloaders. We will let
+the Ant users decide what category to put us in, but before everyone
+panics, Costin, of Tomcat fame, did a lot of the work here. You don't
+write application servers without understanding classloaders inside
+and out.
+</P>
+<P>The impact of these changes will trickle out over Ant versions. In
+1.6, the key features are
+</P>
+<OL>
+ <LI><P>We have got rid of the bit in the batch file/shell script
+ that built up a really big classpath environment variable from
+ everything in ANT_HOME/lib. Now that is done in a launcher class
+ that does the work then calls tools.ant.Main as before.</P>
+ <LI><P>You can add new library directories to that classloader with
+ the -lib option on the command line. This option is interpreted by
+ the launcher class, so will not work with IDEs and other apps that
+ use the inner entry point.</P>
+ <LI><P>We have broken up optional.jar into many-many jar files, such
+ as ant-commons-logging.jar, ant-xalan2.jar, etc etc, and a
+ nodeps.jar for optional stuff without any dependencies. This creates
+ a lot of jar files.</P>
+ <LI><P>You can now <taskdef> existing tasks -like <junit>-
+ by including the specific ant jar <I>and</I> the dependent libraries
+ (i.e. junit.jar) in the declaration. This solves the problem of
+ ANT_HOME/lib needing to contain every jar possibly needed by every
+ user/project. You still have to declare the tasks one by one,
+ something we will fix in Ant1.7</P>
+</OL>
+<H3>Adapters</H3>
+<P >These are Java classes that
+<I>adapt</I>> arbitrary Java classes into ant tasks or types.
+There has always been some of this stuff inside Ant, but now you can
+<taskdef> a task by naming not just the implementation class,
+but the adapter class. An adapter is essentially a meta task
+implementation -something that can be used to create new tasks
+dynamically. Which, when you consider that the core of Ant is
+fundamentally an XML to java mapping system and a simple workflow
+engine, may let you do very unusual things with Ant.
+</P>
+<H3>Antlib: Ant libraries</H3>
+<P>This is something we will expand in future. Till now you could
+declare tasks and types with <taskdef> and <typedef>. If
+they were in a jar, you could write a properties file and name the
+resource path of the file in the jar. If you wanted to have both
+tasks and types, you had name a shared classloader. If you wanted to
+add more things -such as conditions or mappers, you were out of luck.</P>
+<P>Antlibs are Ant Libraries, JAR files containing the code to extend
+Ant, and an XML description file to describe how Ant is extended.
+Before anyone panics at 'yet another XML descriptor syntax' to learn:
+you may already know the syntax. We call it "Ant build files".
+Actually it is a subset: it can only contain those task declarations
+that are derived from org.apache.tools.ant.taskdefs.AntlibDefinition.
+That includes <taskdef> and <typedef>, and <I>any other
+task you choose to derive. </I>We are experimenting with scripting
+and some kind of task predefinition declarations in antlibs. With the
+latter, you will be able to write a predefined task -such as a
+<javac> derivative with the compiler options set, and then use
+it any of your build files. This is all to experimental to get into
+Ant1.6 -expect it in the successor. For now, start using antlibs and
+use the <taskdef> task to load them into your projects.</P>
+<H3>XML Namespace aware</H3>
+<P>Ant finally adopts XML namespaces. This is to address build file
+scalability; antlibs can be imported into their own namespaces, and
+so you can avoid namespace clashes with other libraries. If you do
+not know what namespaces are, do not worry -they are not compulsory.</P>
+<H2>New Tasks</H2>
+<P>As usual, the task base is growing and expanding. These days the
+ant core is resisting adopting many of the highly worthy donations of
+tasks from people, because they make maintenance and firefighting
+worse. Our current stance is that except in special circumstances,
+Ant tasks to support third party open source projects, should live
+with the projects themselves. This keeps them in sync with the
+libraries they integrate with, avoids GPL/Apache licensing issues,
+and reduces the Ant team's support workload, letting them focus on
+the core. The antlib mechanism is intended to make it easier for
+people to load tasks from libraries for this very reason.</P>
+<P>That said, we are pleased to introduce many new tasks. Of
+particular interest may be the SSH tasks, which let one deploy code
+to remote servers securely. Now you really can do live updates with
+Ant -if the operations team will let you. The other one that is quite
+interesting is <subant>. This is an extension of the <ant>
+task, to take an entire fileset of directories and run their build
+files. This is incredibly useful in very large projects. This does
+not mean that we are advocating the many-build-file development
+pattern, but in a sufficiently complex project it happens anyway.
+<subant> keeps things manageable.</P>
+<H2>What else</H2>
+<P>So, what is new in Ant1.6? Lots of stuff. You will have to look at
+the <A HREF="WHATSNEW">whatsnew</A> file to see, but here are some
+key points.
+</P>
+<OL>
+ <LI><P STYLE="margin-bottom: 0in">Bug fixes. We know, some things
+ were broken in 1.5. In ant1.6 we have moved the bugs, fixing the
+ ones we could, and no doubt adding different ones. Hopefully the
+ total bug count has decreased.
+ </P>
+ <LI><P STYLE="margin-bottom: 0in">New platforms: Open VMS and HP's
+ NonStop Kernel (Tandem) OS. OpenVMS is very different from the rest;
+ Read the <exec> task documentation carefully.
+ </P>
+ <LI><P STYLE="margin-bottom: 0in">Spawning. <java> and <exec>
+ started applications can outlive Ant if you set spawn=true. Note
+ that the moment you do so, Ant cannot bind to their input or output,
+ for obvious reasons.
+ </P>
+ <LI><P>Synchronisation with Java versions (heh, thought by moving
+ javah's entry point that you could hide from us? Think again).</P>
+ <LI><P>Synchronization with third party libraries. Of special note:
+ we have moved to the Apache commons-net.jar, the successor to
+ NetComponents for telnet and FTP.</P>
+</OL>
+<P>There are many more enhancements, so we hope you will find your
+build projects easier. We have, as usual, jumped through hoops to
+keep existing builds working. If your build file stops working, and
+it isn't something listed on the 'changes that may break your build'
+part of the WHATSNEW file, or something we know about on bugzilla,
+please don't hesitate to file a new bug report, preferably one with a
+replicable test and a patch to fix the problem. Please, please,
+please, do a search on bugzilla first. You do not want to be the
+seventy-third person to complain that Ant1.6 doesn't do something
+that
+</P>
+<P>Thanks,
+</P>
+<P>The Ant development team.
+</P>
+<P>PS: many thanks for Antoine to being the build manager for this
+release!
+</P>
+</BODY>
+</HTML>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
Re: cvs commit: ant welcome.html
Posted by Jeff Turner <je...@apache.org>.
On Sat, Sep 27, 2003 at 07:04:19AM -0000, stevel@apache.org wrote:
> stevel 2003/09/27 00:04:19
>
> Modified: . Tag: ANT_16_BRANCH welcome.html
> Log:
> Updated welcome note. written in OpenOffice, hence the "
> strings, and other quirks.
Great stuff!
Attached are a few corrections.
--Jeff
Re: cvs commit: ant welcome.html
Posted by Steve Loughran <st...@iseran.com>.
Stefan Bodewig wrote:
> On 27 Sep 2003, <st...@apache.org> wrote:
>
>
>> If the Apache organization had a tea room, those Ant awards would
>> be forcing all the other (excellent) Apache products to fight
>> hard for their cabinet space.
>
>
> Uhm, HTTPD? 8-)
>
exactly
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
Re: cvs commit: ant welcome.html
Posted by Stefan Bodewig <bo...@apache.org>.
On 27 Sep 2003, <st...@apache.org> wrote:
> If the Apache organization had a tea room, those Ant awards would
> be forcing all the other (excellent) Apache products to fight
> hard for their cabinet space.
Uhm, HTTPD? 8-)
Stefan
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org