Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the JavaEMFNature <nature> for an Eclipse project?

Tags:

java

eclipse

I am preparing to build a pre-existing Java project in NetBeans. I am reviewing the pre-existing build-related files to confirm that I can safely build directly from the source files.

There is a .project file in the root directory. It is a short file, so I include it all here:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>qrcode</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.jem.beaninfo.BeanInfoNature</nature>
    </natures>
</projectDescription>

For this question, I would like to know, specifically, what the JavaEMFNature <nature> is. I cannot find any reference to information about it anywhere.

A secondary, but related, question is: Am I correct that regardless of what JavaEMFNature is, that it is not intended to be executed (as currently specified in the .project file)?

Another secondary question: What are the other two <natures>, and what is the purpose of the <buildCommand> (org.eclipse.jdt.core.javabuilder)?

I raise these questions primarily to confirm that I am safe to ignore this .project file as I re-create the project within NetBeans, but I also ask in order to learn (for future reference).

like image 780
Dan Nissenbaum Avatar asked Feb 14 '12 22:02

Dan Nissenbaum


People also ask

What are Eclipse project natures?

The main purpose of project natures is to create an association between a project and a given tool, plug-in, or feature set. By adding a nature to a project, you indicate that your plug-in is configured to use that project.

What are project natures?

Project natures act as tags on a project to indicate that a certain tool is used to operate on that project. They can also be used to distinguish projects that your plug-in is interested in from the rest of the projects in the workspace.


2 Answers

JavaEMFNature is an internal class of JEM, which is a model of the Java Language, implemented in terms of EMF. As far as I know it's also used by WTP for JSP/JSF model. It's part of JEETools project and it's responsible for all sorts of things, like getting source paths and containers, library paths, updating classpath for the project and so on.

It's all in the source code if you would like to go through it...

like image 74
Łukasz Rżanek Avatar answered Nov 15 '22 20:11

Łukasz Rżanek


I think EMF stands for Eclipse Modeling Framework http://www.eclipse.org/modeling/emf/

like image 25
user3001 Avatar answered Nov 15 '22 22:11

user3001