Eclipse 版本控制系统中的IDE中立项目

Eclipse 版本控制系统中的IDE中立项目,eclipse,netbeans,mercurial,project,Eclipse,Netbeans,Mercurial,Project,我有一个netbeans项目正在mercurial下进行。我想做的是剥离所有使这个项目成为netbeans项目的东西,只留下代码,这样我就可以轻松地在eclipse中导入它 是否有一些自动化的方法来执行此操作,或者我必须手动删除此操作 你会推荐什么方法 干杯您只需添加要忽略的nbproject文件夹(=不签入)。所有NetBean设置都放置在此文件夹中。也不要签入build和dist文件夹,因为它们包含已编译的代码(但默认情况下它们被忽略)。执行“IDE中立项目”的最佳方法是使用Maven 在N

我有一个netbeans项目正在mercurial下进行。我想做的是剥离所有使这个项目成为netbeans项目的东西,只留下代码,这样我就可以轻松地在eclipse中导入它

是否有一些自动化的方法来执行此操作,或者我必须手动删除此操作

你会推荐什么方法


干杯

您只需添加要忽略的
nbproject
文件夹(=不签入)。所有NetBean设置都放置在此文件夹中。也不要签入
build
dist
文件夹,因为它们包含已编译的代码(但默认情况下它们被忽略)。

执行“IDE中立项目”的最佳方法是使用Maven

在NetBeans中,当项目基于Maven(而不是基于Ant)时,您将看到通常在
nbproject
文件夹中看到的所有特定于NetBeans的文件都不存在。
nbproject
文件夹甚至不存在。原因是,对于基于Maven的项目,NetBeans基本上使用
pom.xml
作为项目的定义,这是一件好事,因为pom是可移植的,可以被其他IDE直接理解

即使对于基于Maven的项目,NetBeans仍然将一些特定于IDE的内容存储在名为
nb configuration.xml
的文件中,但您可以将此文件的所有内容作为属性包含在
pom.xml
中。当其他IDE加载POM时,这些属性将被忽略。这样,您几乎可以完全避免将任何特定于IDE的文件检查到VCS中。另外值得一提的是,
nb configuration.xml
中的内容对于其他人(使用NetBeans或其他IDE)构建您的项目来说是不需要的。另一种说法是,它包含非必要的数据。POM(凭借其优点)始终保证是对如何构建项目的完整描述

相反,如果您的NetBeans项目是基于Ant的,那么至少根据我的经验,您无法避免将NetBeans特定的文件检查到VCS中。。。因为否则,即使是那些使用NetBeans的人也无法正确打开您的项目

然而,即使使用Maven,也有一个领域会迫使您在VCS中拥有特定于NetBeans的文件,那就是如果您在NetBeans中使用Matisse GUI builder。Matisse GUI builder生成一些扩展名为
.form
的专有文件,您确实需要在VCS中包含这些文件。但这是我能想到的唯一一个例子,假设您的项目是基于Maven的,NetBeans特定的文件将需要进入VCS


如果该项目确实是基于Maven的,并且您仍然觉得在VCS中需要有特定于NetBeans的文件,那么请确切地告诉我们您正在考虑哪些文件。然后我们可以从那里拿走它。:-)

而且源文件夹的布局也不同。但是(在Netbeans和Eclipse中)在项目中设置源文件夹的位置很简单,这取决于您如何设置项目等。。但是,是的,这是一件简单的事情。在任何地方我都可以找到更多关于这个转换的信息>?如果它是基于Ant的,你的NetBeans项目中只有一个
nbproject
文件夹。我已经理解了——请看别处——所讨论的项目是基于Maven的。如果没有netbeans,您将如何编译代码并生成war文件?您有ant文件或其他构建说明吗?我将使用IDE,但我不想存储依赖IDE的文件。如果我使用Netbeans而其他人使用EclipseI使用maven会怎样呢?这不是问题所在,这里的问题是如何在将依赖IDE的文件提交到存储库时将其分离,以便其他人可以直接提取src代码并使用他们想要的IDE。现在他们需要使用NetBeans如果项目是基于Maven的,奇怪的是“他们需要使用NetBeans”??为什么?据我所知,Maven不是IDE:),所以它与此无关。它是项目和依赖关系管理。当我的问题是如何在将文件提交到存储库时保持源代码中IDE相关文件的干净性时,我不认为这有什么帮助。如果项目基于Maven,那么就不需要将任何特定于IDE的文件提交到VCS中。以NetBeans的
nb configuration.xml
文件为例。您可以将该文件的内容复制/粘贴到pom中,然后确保VCS忽略该文件本身。pom中的这些属性将只对在NetBeans中打开项目的用户有意义,所有其他IDE将忽略它们。Maven的使用确实使您的项目“IDE中立”。对不起,Boris,我要澄清一下:如果项目是基于Maven的,那么您可以在您喜欢的任何IDE(Eclipse、NetBeans、IntelliJ等)中打开它,它将工作,并且您将在所有IDE中得到相同的结果。而且没有理由将任何特定于IDE的文件提交到VCS中。这是Maven给你带来的好处,不是别的,因此我的答案是。简言之:使用Maven,您通常可以将特定于IDE的文件保留在VCS之外,我相信这就是您的问题?Maven是“IDE中立”项目的推动者。我不明白投票结果-(