问题标签 [project-structure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4688 浏览

maven - 版本插件不更新子模块,只更新父模块

我的父 pom 的模块定义如下:

父 pom.xml

以下是子模块 pom 文件:

proj2 pom.xml

proj1 pom.xml

但是当我使用版本插件时,它只设置父版本号而不是它的模块。这是我正在使用的命令:

这是输出:

正在跳过子模块。我怎样才能使子模块也被更新而不仅仅是父模块?

更新:我尝试从子模块中删除版本标签,所以子模块现在是:

但是子 pom 文件中没有更新版本号。

更新:这是我认为这个过程的工作方式,请随时提出修改建议:

理论上(我没有测试过)在嵌套文件结构中,当目标运行时,Maven 将更新每个子模块的单独版本号:'ons:set -DnewVersion=1.0.2-SNAPSHOT'。

但是,在平面文件结构中,如果父模块具有相同的版本,则不需要在子模块中指定版本号。这是因为如果不设置子版本号将使用父版本号。因此,要更新父模块的所有子模块,只需更新父模块的版本号,如果所有子模块都没有设置版本号,那么它们将具有与父模块相同的版本号。

0 投票
1 回答
528 浏览

makefile - CMake 可以构建子项目(有好处)吗?

我有一些正在 CMake 中编译的大型项目。它已经开发了很长时间,有 8000 多个源/头文件(超过 500Mbytes,超过 500 个 CMakefile.txt 文件)。

他们使用这样的目录结构

并在外部构建它,如下所示:

然后将其构建为一个 BIG 二进制文件(细节不重要)。


我不能触及其他任何东西,只是MY_SPECIFIC_DIR它的源代码和 CMake 文件的内容。因此,我以某种方式MY_SPECIFIC_DIR 在调整 CMakefile.txt 文件 中有源代码,并希望像这样构建它:

这应该将东西构建MY_SPECIFIC_DIR到单个二进制文件中,并带有一些到其他子项目的链接。但也(显然)不要改变整个项目的编译方式。

我的问题是:

是否可以使用CMake 进行所需的设置
我可以以某种方式测试CMakeFile.txt它是根项目并以与整体构建时不同的方式构建它吗?


除非,我必须诉诸不同的手段并make为此使用标准。我不知道 CMake,所以我希望是/否anwer,甚至对于如何实现这一点的技术也更可取。然后学习CMake并做到这一点。

另外,我必须使用 CMake 2.6 版。

谢谢

0 投票
1 回答
498 浏览

version-control - VCS and Python project structure: How to setup the PYTHONPATH automatically?

There are many suggestions on the web what the structure of the Python project can/shall be, e.g. What is the best project structure for a Python application?.

It seems that many people in the Python world prefer the "src-dir" and "proj-dir" to be equal (or very similar). However, the scripts and tests will surely have to import some modules from src-dir, so either I have to

  • run all scripts and tests when proj-dir as my current working dir, or
  • the PYTHONPATH must contain the proj-dir, right?

Or, is there any other possibility which I overlook now?

Suppose I have such structure and have set up the PYTHONPATH correctly. Now I commit the project into VCS and another developer checks the project out. On his machine the PYTHONPATH will not be set properly and the imports in scripts and in tests will not work.

  1. Is there any possibility to somehow make the PYTHONPATH definition part of the project, so that it can be part of the version control?
  2. Is there a different project structure that would allow me to make checkout and start using the project without modifying the PYTHONPATH?
  3. Is to solution suggested here: Python - How to PYTHONPATH with a complex directory structure? (i.e. to include a short sys.path modifying snippet in every script and test) the right one?
  4. Would a site module http://docs.python.org/2/library/site.html be of any help?
  5. What is your workflow when developing a project with a similar structure?
0 投票
3 回答
15275 浏览

javascript - AngularJS 服务在单独的文件中

我的 app.js 包含

服务看起来像

在控制器中我有

它们都在单独的文件中。问题是我遇到了一个错误 Unknown provider: MyServiceProvider <- MyService

看起来我做错了什么。

0 投票
1 回答
1369 浏览

wpf - WPF 将“资源”项目添加到具有多个 WPF 应用程序的解决方案中

我正在 WPF 中开发三个类似信息亭的应用程序。它们将具有相似的外观和感觉,我希望在同一个解决方案中创建所有项目。我想做的是将一个项目添加到仅包含共享资源(例如字体和图像)的解决方案中。

我的问题是,是否可以跨应用程序共享嵌入式字体等资源,如果可以,那么适合这种用途的项目类型是什么?(类库?WPF 用户控件?)

0 投票
2 回答
172 浏览

java - 从 C++/C# 到 Java——使用“每个类一个公共类型”规则正确构建代码

我刚开始用 Java 开发,因为我从大学时代就没有接触过它。到目前为止,我已经能够记住很多事情并阅读了一大堆,这对我来说仍然不清楚......

我遇到的问题是,很多书籍/示例/教程/SE 帖子都专注于不会出现此类问题的更简单、更小的问题。

如果您有一个具有 1000 种类型(类、接口或两者)的项目......是为每种类型简单地创建一个新文件的最佳项目结构/布局约定吗?来自 C++/C# 背景,这对我来说不太合适(还没有?),因为我习惯于通常有一个或可能很少的文件来定义整个项目其余部分使用的接口。小的相关类通常会在一个文件中实现。

作为一个更具体的例子,我目前正在重构一个“事件”类,该类目前正在处理 15 种不同的事件类型,都在一个类中。定义该类的包还具有其他事件处理类,例如读取器、写入器和解析器。

如果我创建基本事件类和 15 个派生类,因为每个类的属性/行为略有不同……这些是我的选择:

  1. 15 个新文件全部添加到现有包中 - 似乎我会“污染”该包,因为文件数量将从 6 个变为 21 个,并且正交性会中断。
  2. 将所有事件类移动到它们自己的包中并将它们放在一起
  3. 创建一个名为“Events.java”的文件,并将所有 15 个类作为该主类的嵌套静态类(本质上“类事件”将成为一个命名空间) - 谷歌似乎使用他们的协议缓冲区来做到这一点。

由于没有足够的 Java 经验,我无法确定哪种方法是公认的标准。可以在一个目录中有 1000 个文件吗?我应该创建更多包吗?(查看其他库/框架,似乎它们将包的数量保持在最低限度)

在其他情况下,特别是在实现策略模式时,我会创建一个带有静态工厂方法的公共基类和一些非公共类,这样我就可以将它们保存在一个文件中。似乎我只是根据每个班级规则的一个公共类型以及我这样做的所有时间做出这些“设计”选择,这个问题又回来了......也许我只是做得不对。

0 投票
3 回答
2490 浏览

php - PHPStorm 和模块参考

我的 PHP 项目中有以下文件:

以这种方式index.php引用module1.php

反过来,module1.phprequires module2.php,因此它具有以下行:

我需要从根通知相对路径才能使其工作。我猜这是因为require_once命令需要一个来自当前文档的路径,它恰好是 index.php。问题是 PHP Storm 无法管理这个引用。例如,它不会将字符串private/module2.php转换为超链接,也不会将其作为实际引用。

如何解决这个问题?

0 投票
3 回答
11524 浏览

maven - 带有许可证插件的 Maven 多模块项目

我有一个多模块项目,我正在尝试设置许可证插件来管理所有许可证。这是项目设置:

每个 pom.xml 都继承自 transfuse-project pom.xml。在项目 pom.xml 中,我设置了许可证插件以将 NOTICE 应用于相关文件:

如果我直接从根 (transfuse-project) 构建,则此配置有效。当我直接构建 integrationTest 示例或 api 时出现问题。Maven 找不到我在项目根目录中提供的 NOTICE 文件:

更糟糕的是,它找到了另一个依赖项的 NOTICE 文件。如果我mvn license:format在子模块中运行,它将用依赖项的 NOTICE 文件替换所有模块的头文件。

我相信我可以在每个子模块中添加一个 NOTICE 文件来解决这个问题,并为每个子模块 pom 配置它自己的许可证插件,但如果可能的话,我想避免这种重复。是否有一些配置或设置适用于我的项目设置?

0 投票
1 回答
210 浏览

eclipse - 如何在eclipse中组织webdriver项目?

我已经在 Eclipse Juno 中启动了一些 WebDriver 项目,但我对我的结构不满意,我认为这很愚蠢而且根本没有效率。

现在你可以在下面看到我的项目三。TEST_xxx.java 文件是触发测试包中文件的函数。

下面是 TEST_xxx.java 文件中一个函数的示例:

这将调用测试包内导航类中的函数 search_product_by_sku()。这个函数看起来像这样:

所有这些似乎都很难维护,而且由于我不是一个非常有经验的程序员,我真的没有想法,我希望这里有人可以帮助我。

提前致谢!

现在在 Eclipse 中的组织三

0 投票
2 回答
127 浏览

django - 导入模型以将查询封装在属性中会导致循环导入问题

我的问题如下:有一段时间,我习惯于将我的应用程序的一些(最相关和可重用的)查询封装在我的 Django 模型中的属性中。

为此,我经常这样做:

我一直认为这是一种很好的做法,并且在我的应用程序中经常使用它们中的大多数。

问题是:这些主要用于查询的导入声明妨碍了我的模型的关系结构。含义:在不创建循环导入问题的情况下,我无法创建用于查询的属性变得越来越频繁。

我的方法正确吗?有没有更好的方法来封装这些查询?你平常都做什么?

谢谢你的帮助。