如何将 git 个子模块导入 NetBeans 8.1?
How to import git submodules into NetBeans 8.1?
我有一个由 Git 存储库控制的 NetBeans 项目。我正在使用一个 GitHub 项目作为依赖项;当我开始这个项目时,我是 Git 的新手,所以我只是克隆依赖项,获取源代码并将其作为一个包放入,就好像它是我自己的一样。
现在我对 Git 有了更多的经验,我希望将依赖项作为 git 子模块,这样我就可以使用它,轻松地更新它,并且将所有内容放在一个地方,这样最终用户(我的项目是 API)就不需要将依赖项克隆为副项目。
我从 the SVN guide 中发现了子模块;所以我新建了一个分支,删除了依赖包并初始化了子模块,然后打开了NetBeans,但是NetBeans就是看不到。
我原以为子模块会出现在库列表之类的地方,但它肯定不在那里。
在研究 NetBeans 论坛后,我注意到他们从未在文档中提及子模块。
那么,是否可以在 NetBeans 中使用子模块?我不是在寻找任何复杂的东西,只是将我的项目和依赖项分开。除了编译依赖项(即没有修改)之外,我不打算做任何事情,但如果可能的话,我宁愿保持它的可行性。如果这在 NetBeans 下是不可能的,那么最接近实现这个目标的是什么? (我听说过 Maven,但完全不知道它是什么)
相关链接:The project I'm talking about (GitHub), the dependency (GitHub)
[编辑]
检查后,我的问题不是来自 git 命令行(git 子模块已在项目文件夹中初始化),而是似乎是 NetBeans 配置问题。根据错误(每次导入时 "package ... not found"),我猜想 NetBeans 只是不知道在哪里可以找到子模块的源代码。我试图通过右键单击 IDE 中的 'libraries' 文件夹然后 'add project/folder' 将子模块手动添加到库中。我已经对子模块中的各种文件夹进行了尝试,但是 none 似乎让 NetBeans 找到了源(虽然它在那里)。 Here is the link to the dependency, maybe there's something specific about how the folders are laid down, I don't know. (from GitHub)
可以将子模块与 NetBeans 一起使用,即使 git 命令不能直接从 NetBeans GUI 运行:参见 bug 271489。
至少,应该检测到变化(bug 207067)
但是,从没有 NetBeans 的情况下开始:
- 在你的工作树中(在你的磁盘上),检查你的新分支,添加你的子模块(即声明另一个 Git repo 的 URL ,它有你的来源依赖)
不要忘记从您的主仓库添加、提交和推送。
然后再次克隆该存储库 (git clone -b yourBranch --recursive
):这将克隆您的主存储库并初始化子模块内容,全部在一个命令中完成。
打开 NetBeans 并检查所有内容是否可见。
自 NetBeans 8.2 起,git 子模块受本机支持。在 NetBeans 8.1 中,它们不是,这是我设法使用它们的方式:
我的问题不在于 git 命令行;你可以在这里找到相关信息:submodule tutorial on the SVN guide
检查子模块是否按预期初始化后,我按照以下步骤操作:
- 打开 NetBeans
- 在 "project" 选项卡中,右键单击项目,select "properties"
- 转到 "sources" 选项卡,select "add folder"
- Select子模块中的src/文件夹
这不会使子模块成为库:相反,NetBeans 认为它是您代码的一部分。就我而言,这已经足够了,但我想指出来。
此外,预计您之前的所有导入都会被破坏(包名称可能已更改)。
这个解决方案感觉像是一个 hack,所以我很乐意有人解释如何让 NetBeans 将子模块识别为库,但与此同时我认为这仍然有帮助。
我有一个由 Git 存储库控制的 NetBeans 项目。我正在使用一个 GitHub 项目作为依赖项;当我开始这个项目时,我是 Git 的新手,所以我只是克隆依赖项,获取源代码并将其作为一个包放入,就好像它是我自己的一样。
现在我对 Git 有了更多的经验,我希望将依赖项作为 git 子模块,这样我就可以使用它,轻松地更新它,并且将所有内容放在一个地方,这样最终用户(我的项目是 API)就不需要将依赖项克隆为副项目。
我从 the SVN guide 中发现了子模块;所以我新建了一个分支,删除了依赖包并初始化了子模块,然后打开了NetBeans,但是NetBeans就是看不到。
我原以为子模块会出现在库列表之类的地方,但它肯定不在那里。
在研究 NetBeans 论坛后,我注意到他们从未在文档中提及子模块。
那么,是否可以在 NetBeans 中使用子模块?我不是在寻找任何复杂的东西,只是将我的项目和依赖项分开。除了编译依赖项(即没有修改)之外,我不打算做任何事情,但如果可能的话,我宁愿保持它的可行性。如果这在 NetBeans 下是不可能的,那么最接近实现这个目标的是什么? (我听说过 Maven,但完全不知道它是什么)
相关链接:The project I'm talking about (GitHub), the dependency (GitHub)
[编辑] 检查后,我的问题不是来自 git 命令行(git 子模块已在项目文件夹中初始化),而是似乎是 NetBeans 配置问题。根据错误(每次导入时 "package ... not found"),我猜想 NetBeans 只是不知道在哪里可以找到子模块的源代码。我试图通过右键单击 IDE 中的 'libraries' 文件夹然后 'add project/folder' 将子模块手动添加到库中。我已经对子模块中的各种文件夹进行了尝试,但是 none 似乎让 NetBeans 找到了源(虽然它在那里)。 Here is the link to the dependency, maybe there's something specific about how the folders are laid down, I don't know. (from GitHub)
可以将子模块与 NetBeans 一起使用,即使 git 命令不能直接从 NetBeans GUI 运行:参见 bug 271489。
至少,应该检测到变化(bug 207067)
但是,从没有 NetBeans 的情况下开始:
- 在你的工作树中(在你的磁盘上),检查你的新分支,添加你的子模块(即声明另一个 Git repo 的 URL ,它有你的来源依赖)
不要忘记从您的主仓库添加、提交和推送。
然后再次克隆该存储库 (git clone -b yourBranch --recursive
):这将克隆您的主存储库并初始化子模块内容,全部在一个命令中完成。
打开 NetBeans 并检查所有内容是否可见。
自 NetBeans 8.2 起,git 子模块受本机支持。在 NetBeans 8.1 中,它们不是,这是我设法使用它们的方式:
我的问题不在于 git 命令行;你可以在这里找到相关信息:submodule tutorial on the SVN guide
检查子模块是否按预期初始化后,我按照以下步骤操作:
- 打开 NetBeans
- 在 "project" 选项卡中,右键单击项目,select "properties"
- 转到 "sources" 选项卡,select "add folder"
- Select子模块中的src/文件夹
这不会使子模块成为库:相反,NetBeans 认为它是您代码的一部分。就我而言,这已经足够了,但我想指出来。
此外,预计您之前的所有导入都会被破坏(包名称可能已更改)。
这个解决方案感觉像是一个 hack,所以我很乐意有人解释如何让 NetBeans 将子模块识别为库,但与此同时我认为这仍然有帮助。