blob: 1d073eaf0094f531e88acd0abf497781d8438e67 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. -->
<!-- Use is subject to license terms.-->
<head>
<title>Importing Eclipse Projects into NetBeans IDE - Tutorial</title>
<meta name="KEYWORDS" content="NETBEANS, TUTORIAL, GUIDE, USER, DOCUMENTATION">
<meta name="description"
content="Overview of Eclipse Import features in NetBeans IDE">
<link rel="stylesheet" href="../../../netbeans.css">
</head>
<body>
<a name="top"></a>
<h1>Importing Eclipse Projects into NetBeans IDE</h1>
<p><b>Contents</b></p>
<img src="../../../images_www/articles/72/netbeans-stamp-74-73-72.png" class="stamp" alt="Content on this page applies to NetBeans IDE 6.9, 7.0, 7.1, 7.2, 7.3, and 7.4" title="Content on this page applies to the NetBeans IDE 6.9, 7.0, 7.1, 7.2, 7.3, and 7.4">
<ul class="toc">
<li><a href="#intro" title="The Import Eclipse Project Wizard">The Import Eclipse Project Wizard</a></li>
<li><a href="#how-it-works" title="How the Import Wizard Works">How the Import Wizard Works</a></li>
<li><a href="#import" title="Importing and Configuring Projects">Importing and Configuring Projects</a></li>
<li><a href="#build" title="Building and Running a Project">Building and Running a Project</a></li>
<li><a href="#metadata" title="NetBeans Project Files">NetBeans Project Files</a></li>
<li><a href="#versioning" title="Version Control Considerations">Version Control Considerations</a></li>
<li><a href="#resynch" title="Resynchronizing a Project">Resynchronizing a Project</a></li>
<li><a href="#problems" title="Resolving Import Problems">Resolving Import Problems</a></li>
<li><a href="#nextsteps" title="See Also">See Also</a></li>
</ul>
<p><b>To complete this tutorial, you need the following software and resources.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software or Resource</th>
<th class="tblheader" scope="col">Version Required</th>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.netbeans.org/downloads/index.html">NetBeans IDE</a></td>
<td class="tbltd1">version 6.9, 7.0, 7.1, 7.2, 7.3, or 7.4 </td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java Development Kit (JDK)</a></td>
<td class="tbltd1">version 6 or 7</td>
</tr>
</tbody>
</table>
<a name="intro"></a><h2>The Import Eclipse Project Wizard</h2>
<p>An enhanced support for importing Eclipse projects is available in the NetBeans IDE. The Import Eclipse Project wizard enables you to use NetBeans to work on Java desktop and web
application projects that were created in Eclipse and MyEclipse.</p>
<p>After creating a NetBeans project from an Eclipse project, you can work
in the following ways:</p>
<ul>
<li>Use NetBeans on a team project where other developers are using Eclipse.
</li>
<li>Use NetBeans and Eclipse interchangeably on a project.
</li>
<li>Try out NetBeans on an existing project that was set up in Eclipse. </li>
</ul>
<p class="align-center"><a href="#top">top</a></p>
<a name="how-it-works"></a><h2>How the Import Wizard Works</h2>
<p>When you import a project, the IDE analyzes the Eclipse project metadata and then
creates a NetBeans project based on that metadata. The project import
does not impose changes on the Eclipse project
structure, so it does not interfere with the way the project works in Eclipse.</p>
<p>Once you have the project
imported, you can use either or both the NetBeans and Eclipse IDEs to
edit, build, run, debug, and profile the project.
If you make a configuration change in the Eclipse project, you can resynchronize
the NetBeans project. This enables you to work on projects in NetBeans even
if everybody else on your team is working with Eclipse.
The build path that you set in Eclipse remains the master build path for the project.</p>
<p class="align-center"><a href="#top">top</a></p>
<h2><a name="import"></a>Importing and Configuring Projects</h2>
<p><b>To import an Eclipse project into the IDE:</b></p>
<ol>
<li>Make sure that you have copy of the project that you want to import on your system.
<p>Typically, this project would already be in an Eclipse workspace on your
system.</p></li>
<li>Choose File &gt; Import Project &gt; Eclipse Project.</li>
<li>In the Workspace Location page of the wizard, select the Import Projects from Workspace radio button and specify the workspace location. Click Next.
<p class="align-center"><a href="../../../images_www/articles/71/java/import-eclipse/eclipse-import-workspace-location.png" rel="lytebox" title="The Workspace Location page of the Import Eclipse Project wizard - Click to enlarge">
<img src="../../../images_www/articles/71/java/import-eclipse/eclipse-import-workspace-location-small.png" alt="The Workspace Location page of the Import Eclipse Project wizard " border=1></a></p></li>
<li>In the Projects to Import page, select the projects that you want to
import.</li>
<li> Choose one of the following two options for storing the NetBeans project
files:
<ul>
<li><b>Store NetBeans project data inside Eclipse project folders.</b>
NetBeans adds folders and files within the top-level folder of the original
project.</li>
<li><b>Create imported NetBeans projects in a separate location.</b>
NetBeans uses the sources and libraries in the
original Eclipse project folder but creates a separate folder to hold
NetBeans project metadata and build outputs.</li>
</ul>
<p class="notes"><b>Note:</b> Typically, it is better to store NetBeans project data inside
Eclipse project folders. In most cases, this means that the NetBeans project
metadata will refer to sources and libraries with the same paths that are used by
the Eclipse metadata. Therefore, checking out the project from a version
control system on different machines should result in similar behavior
both in NetBeans and Eclipse.<br>
See <a href="#metadata">NetBeans Project Files</a> below for a list of files and
folders that the NetBeans IDE creates.</p>
</li>
<li>(Applicable when web applications are being imported only.) Click Next. In the Servers page, register any servers that your projects need with
NetBeans IDE.</li>
<li>Click Finish.</li>
</ol>
<p>After you have completed the wizard, the following dialog boxes might appear:</p>
<ul>
<li><b>Import Issues.</b> This dialog box provides information about discrepancies
between the project structure in Eclipse and in NetBeans and points out
actions that you might need to take to correct the discrepancies.
<br>You can copy the information from this dialog and paste it elsewhere for future reference.
<br>In most cases, you use the project's Project Properties dialog box to
resolve those issues. See <a href="#problems">Resolving Import Problems</a>
for a guide to resolving the most common problems.
<p class="align-center"><a href="../../../images_www/articles/71/java/import-eclipse/eclipse-import-issues.png" rel="lytebox" title="The Import Issues dialog box - Click to enlarge">
<img src="../../../images_www/articles/71/java/import-eclipse/eclipse-import-issues-small.png" alt="The Import Issues dialog box" border=1></a></p>
</li>
<li><b>Resolve Reference Problems.</b> This dialog box alerts you to a specific
reference problem with one of your project libraries. You can solve this problem
after dismissing this dialog box by right-clicking the project's node and
choosing Resolve Reference Problems.</li>
<li><b>Resolve Missing Server.</b> This dialog box alerts you that the
project can not find a necessary server. You can solve this problem
after dismissing this dialog box by right-clicking the project's node and
choosing Resolve Missing Server.</li>
</ul>
<p>After you have completed the wizard and have closed any of the above
informational dialog boxes, nodes for the projects will appear in the Projects window.
</p>
<p class="align-center"><img src="../../../images_www/articles/71/java/import-eclipse/eclipse-import-projects-window.png"
alt="The Projects window after a project has been imported." class="margin-around"></p>
<p>If there are references in your
project metadata to servers or other resources that NetBeans can not resolve,
the node for the project will appear in red. You can resolve these references
immediately by right-clicking the project node and choosing Resolve Reference
Problems or Resolve Missing Server.</p>
<p>For other types of project configuration adjustments, you use the
Project Properties dialog box. You open the Project Properties dialog box
by right-clicking the project's node and choosing Properties.</p>
<p>For more information on configuring your project, see
<a href="project-setup.html#projects-configuring">Configuring the Classpath and Other Project Settings</a>
in the Creating, Importing, and Configuring Java Projects guide.</p>
<p class="align-center"><a href="#top">top</a></p>
<h2><a name="build"></a>Building and Running a Project</h2>
<p>Once you have the project imported into NetBeans, you can build and run the
project. All artifacts created from NetBeans build and run commands are created in
the <code>build</code> and <code>dist</code> folders. NetBeans does not
over-write output created from Eclipse build actions. If the Eclipse project already
has <code>build</code> and <code>dist</code> folders,
the NetBeans project creates folders called
<code>nbbuild</code> and <code>nbdist</code> and uses those for the build outputs.</p>
<p>The following are some of the build and run commands are available from the Run menu:</p>
<ul>
<li><b>Run Project.</b> Test runs the application in the IDE.</li>
<li><b>Clean and Build Project.</b> Deletes the contents of the <code>build</code>
(or <code>nbbuild</code>) and <code>dist</code> (or <code>nbdist</code>)
folders and rebuilds all of the project's outputs. Uses
the NetBeans build script.
Similar to the Clean command in Eclipse.</li>
<li><b>Clean.</b> Deletes the contents of the <code>nbbuild</code>
and <code>nbdist</code> folders.</li>
<li><b>Build.</b> Rebuilds the project's outputs. If the Compile on Save
feature is enabled, the Build command is disabled. See the
<a href="project-setup.html#building-compile-on-save">Compile on Save</a> section
of the Creating, Importing, and Configuring Java Projects guide.</li>
</ul>
<p>For more information on building and running your application as well as
customizing the build process, see
<a href="project-setup.html">Creating, Importing, and Configuring Java Projects</a>.
</p>
<p class="align-center"><a href="#top">top</a></p>
<h2><a name="metadata"></a>NetBeans Project Files</h2>
<p>After you have imported the project, you will find the following folder and files
on your system:</p>
<ul>
<li><code>build.xml</code> file or <code>nb-build.xml</code> file. The main NetBeans build
script for the project. You can customize this script according to the needs
of your project. By default, this file is called <code>build.xml</code>.
If such a file already exists in the project folder, the script is called
<code>nb-build.xml</code>.</li>
<li><code>nbproject</code> folder. Contains most of the NetBeans project metadata,
including resources that are called by the main NetBeans build script. If you check
this folder and the <code>build.xml</code> file or <code>nb-build.xml</code>
into your version control system, other users will be able to
open the project in NetBeans. This folder also contains the <code>private</code>
folder, which contains data specific to your system. This folder should not
be checked in to the version control system since its contents will vary
between users. See <a href="#versioning">Version Control Considerations</a> below.</li>
<li><code>nbbuild</code> folder. When you build or run your project in NetBeans,
the project's sources are compiled into this folder.</li>
<li><code>nbdist</code> folder. When you build your project in NetBeans,
the project's distributable outputs are created and placed in this folder.
Such outputs might be JAR files and WAR files.</li>
</ul>
<p class="align-center"><a href="#top">top</a></p>
<a name="versioning"></a><h2>Version Control Considerations</h2>
<p>If the project is checked out of a version control system,
the <code>build</code> (or <code>nbbuild</code>),
<code>dist</code> (or <code>nbdist</code>), and the <code>nbproject/private</code>
folders should not be checked into that version control system. </p>
<p>If the project
is under the CVS, Subversion, or Mercurial version control systems, the
appropriate &quot;ignore&quot; files are created or updated for these directories when
the project is imported.</p>
<p class="notes">Though <code>nbproject/private</code> should be ignored,
<code>nbproject</code> should be checked into the version control system.
<code>nbproject</code> contains project metadata that enables others users to
open the project in NetBeans without having to import the project first.</p>
<p class="align-center"><a href="#top">top</a></p>
<h2><a name="resynch"></a>Resynchronizing a Project</h2>
<p>The project importer features synchronization capabilities. If
the classpath in the Eclipse has changed since you initially imported it, you can
use the Resynchronize Eclipse Projects feature to update the classpath
in the corresponding NetBeans project.</p>
<p>Project resynchronization is one-way from Eclipse projects to NetBeans projects.
If you make changes to the project structure in NetBeans, those changes are not
propagated to the Eclipse project with the resynchronization feature.
If you intend to keep both Eclipse and NetBeans projects, use the Eclipse project
as the &quot;master&quot; project.</p>
<p>The IDE also resynchronizes the projects automatically if the changes to the
Eclipse configuration are unambiguous and do not require your input. This
automatic resynchronization occurs shortly after you open the project.
If the resynchronization requires your input, you need to manually
resynchronize the project.</p>
<!-- TODO add information on what gets synchronized-->
<p><b>To manually resynchronize NetBeans projects with Eclipse projects:</b></p>
<ul>
<li>Choose File &gt; Import Project &gt; Resynchronize Eclipse Projects.</li>
</ul>
<p class="notes"><b>Notes:</b> When you resynchronize a project, the resynchronization
is performed on all projects that you have imported from the workspace.</p>
<p class="align-center"><a href="#top">top</a></p>
<h2><a name="problems"></a>Resolving Import Problems</h2>
<p>When you import a project into NetBeans, there might be some things that can
not be automatically resolved in NetBeans IDE. For some of these problems,
a menu item, such as Resolve Missing Server Problem, appears in the contextual menu for the project.
Other problems can be resolved
in the Project Properties dialog box for the imported project in NetBeans IDE.
</p>
<p>Here is a list of common import problems and their solutions.</p>
<table>
<tr>
<th class="tblheader" scope="col">Problem Message</th>
<th class="tblheader" scope="col">Solution</th>
</tr>
<tr>
<td class="tbltd1">Resolve Missing Server Problem</td>
<td class="tbltd1">Right-click the project node and choose Resolve Missing Server Problem.
Then navigate to the file or folder that contains the server.</td>
</tr>
<tr>
<td class="tbltd1">Resolve Reference Problem</td>
<td class="tbltd1">Right-click the project's node and choose Resolve Reference
Problem. Then navigate to the file or folder that contains the resource that
is referred to from the project.</td>
</tr>
<tr>
<td class="tbltd1">Eclipse platform for project <i>ProjectName</i> cannot be used.
It is a JRE and the NetBeans project requires a JDK. NetBeans will use the default platform.
</td>
<td class="tbltd1">If you would like to change the platform that NetBeans uses
for the project, choose Tools &gt; Platforms and specify a different platform.</td>
</tr>
<tr>
<td class="tbltd1">Eclipse project <i>ProjectName</i> claims to use JDK from the &quot;{1}&quot; directory. But this directory does not exist. NetBeans will use the default platform.
</td>
<td class="tbltd1">If you would like to change the platform that NetBeans uses
for the project, choose Tools &gt; Platforms and specify a different platform.</td>
</tr>
<tr>
<td class="tbltd1">NetBeans does not support source includes/excludes per
source root as Eclipse does. They were merged and it is recommended that
you double check them in project's properties in Source panel.
</td>
<td class="tbltd1">In NetBeans, includes and excludes are declared in one
place for the whole project. To check the includes and excludes in the
NetBeans project, right-click the project's node and the Projects window
and choose Properties. In the Project Properties dialog box, select the
Sources tab and then click the Includes/Excludes button.</td>
</tr>
<tr>
<td class="tbltd1">Import failed due to <i>...</i>. More details can be found in IDE's log file.</td>
<td class="tbltd1">You can open the IDE's log file by choosing View &gt; IDE Log.</td>
</tr>
<tr>
<td class="tbltd1">Unknown project type - it cannot be imported.</td>
<td class="tbltd1">You can only import the following Eclipse project types:
Java Project, Java Project from Existing Ant File, Static Web, Dynamic Web,
and JPA Project.</td>
</tr>
</table>
<!-- TODO link to a wiki with other troubleshooting info-->
<!-- ======================================================================================= -->
<p class="align-center"><a href="#top">top</a></p>
<div class="feedback-box" ><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Importing%20Eclipse%20Projects%20into%20NetBeans%20IDE">Send Feedback on This Tutorial</a></div>
<br style="clear:both;" >
<h2><a name="nextsteps"></a>See Also</h2>
<ul>
<li><a href="http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG445">Importing an Eclipse or JBuilder Project</a> in <i>Developing Applications with NetBeans IDE</i></li>
<li><a href="http://wiki.netbeans.org/NetBeansForEclipseUsers">NetBeans For Eclipse Users</a></li>
<li><a href="project-setup.html">Creating, Importing, and Configuring Java Projects</a></li>
<li><a href="../../trails/java-se.html">General Java Development Learning Trail</a></li>
<li><a href="../../trails/matisse.html">Java GUI Applications Learning Trail</a></li>
<li><a href="../../trails/java-ee.html">Java EE &amp; Java Web Learning Trail</a></li>
</ul>
<p class="align-center"><a href="#top">top</a></p>
</body>
</html>