blob: 02b3b201573a13a9d5aa80bbcf7e94dddf7b2231 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="en">
<head>
<meta name="copyright" content=
"Copyright (c) IBM Corporation and others 2000, 2011. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page.">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
<title>Builds</title>
<script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js" type="text/javascript"></script>
</head>
<body bgcolor="#FFFFFF">
<h1 class="Head">Builds</h1>
<p class="Para">Builders create or modify workspace resources, usually based on the existence and state of other
resources. They are a powerful mechanism for enforcing the constraints of some domain. For example, a Java builder
converts Java source files (.java files) into executable class files (.class files), a web link builder updates links
to files whose name/location have changed, etc. As resources are created and modified, builders are run and the
constraints are maintained. This transform need not be one to one. For example, a single .java file can produce
several .class files.</p>
<h2>Auto-build vs. Manual Build</h2>
<p class="Intro">There are two distinct user work modes with respect to building: relying on Auto-build, or user
initiated manual building.</p>
<p class="Intro">If you don't need fine-grained control over when builds occur, you can turn on auto-building. With
auto-building on, builds occur after every set of resource changes (e.g., saving a file, importing a ZIP, ...).
Auto-building is efficient because the amount of work done is proportional to the amount of change done. The benefit
of auto-building is that your derived resources (e.g., Java .class files) are always up to date. Auto-building is
turned on/off via the <b>Build automatically</b> option on the <a class="command-link" href=
'javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.ui.preferencePages.Workspace)")'>
<img src="PLUGINS_ROOT/org.eclipse.help/command_link.svg" alt="command link"> <b>General &gt; Workspace</b></a>
preference page.</p>
<p class="Intro">If you need more control over when builds occur, you can turn off auto-building and invoke builds
manually. This is sometimes desirable in cases where, for example, you know building is of no value until you finish
a large set of changes. In this case there is no benefit to paying the cost of auto-building. Builds can be invoked
manually in numerous ways, for example, by right-clicking the project and selecting <b>Build Project</b>.</p>
<p class="Intro">The disadvantage of manual building is that the problems that were generated to indicate build
errors quickly become out of date until you build. In addition, it is very important that you remember to manually
build before relying on build output (e.g. before running your Java program).</p>
<h2>Building and Cleaning</h2>
<p class="Intro">Builds work incrementally based on a previous built state. They will apply the transforms of the
configured builders only on the resources that have changed since that previous state was computed (i.e., since the
last build). Auto-building always uses incremental building for efficiency.</p>
<p class="Intro">A clean build (<b>Project &gt; Clean</b>) discards any existing built state. The next build after a
clean will transform all resources according the domain rules of the configured builders.</p>
<p class="Intro">Depending on your needs, build and clean can be done over a specific set of projects or the
workspace as a whole. Specific files and folders cannot be built separately.</p>
</body>
</html>