问题标签 [dependency-management]

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 投票
1 回答
3429 浏览

unit-testing - 如何在 Maven 中使用不同的 JAR 进行编译和测试?

我针对 javaee-api 编译我的程序。但是对于 Junit 测试,我必须使用像 glassfish 的 javaee.jar 这样的特定实现来避免java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/Persistence之类的错误(另请参见1)。

所以避免使用仅在 glassfish 实现中可用的方法,我想用通用 api 编译我的工件,但用实现 jar 运行 junit。但是两者都提供了相同的命名类和接口,所以类加载器遇到了麻烦。

解决此问题的最佳方法是什么?我可以用maven解决这个问题吗?

非常感谢

0 投票
2 回答
1250 浏览

c# - 是否有任何好的/可自动化的依赖管理工具来管理应用程序、数据库和外部资源的依赖关系?

我想构建尽可能多的应用程序依赖项的概述/地图。使用 NDepend(我喜欢它!)之类的工具分析 .NET 应用程序依赖关系相当容易。但是当涉及到外部依赖项时,例如数据库和 Web 服务,我需要更好的东西,最好是可以通过各种工具自动化的东西。

例如,我可能有一个工具填充数据库列表,另一个工具用于填充 .NET 应用程序列表,第三个工具获取 Web 服务列表,最后一个工具知道如何挖掘应用程序以获取组件之间的依赖关系由其他工具找到。

所有或大部分都可以自动化,这样我就不必自己维护一个依赖列表,这很容易出错,并且在我完成时可能已经过时了。所以我很想拥有一个可以为我完成所有这些工作的工具,或者至少是一个可以保存、分析和可视化组件和依赖项的工具,而不是自己构建它。我要做的越少越好...

0 投票
5 回答
4137 浏览

.net - 是否有 .NET 替代 Java 工件存储库(如 Nexus 或 Artifactory)?您在哪里存储版本化的 DLL?

在哪里存储 Team System 上自动构建所需的二进制文件?您是将它们与代码一起存储在 SCM 中还是其他地方?SCM 中的大量二进制文件是否会导致源代码控制出现任何性能问题?

为了修复已发布版本中的错误,需要能够恢复到某些外部库的早期版本,但是这些版本不兼容。分支可以解决问题,但我认为将二进制文件与代码一起存储是反模式的。

欢迎任何建议。

0 投票
7 回答
298 浏览

java - 开发和部署期间的 Java 依赖项

我有一个关于管理编译和部署 jar 依赖项的正确方法的一般性问题。对于一个简单的库/应用程序,我通常会像下面这样布置 dev 目录。

有很多方法可以做到这一点,但这是我对通用项目的典型布局。我的问题围绕 lib 目录。我通常将我的项目所依赖的 jars 放在 lib 目录(log4j 等)中,因此在编译时我可以将各种路径设置为 lib\log4j.jar 或类似的东西。现在,当我们创建一个可分发的包时,我倾向于反映这种布局。

这允许我设置一个脚本来设置我的类路径相对于主 jar 的位置,或者我可以在清单中为主 jar 设置类路径(在这种情况下为 Calculator.jar)这可能是也可能不是最好的方法这样做,但它对我有用,并且似乎是我与之交谈过的其他开发人员处理依赖项的公认方式。

当我想创建一个使用我以这种方式布置的其他项目的新项目时,我的问题就来了。

所以假设我想创建一个新的计算器项目,它使用上面示例中的计算器项目。如果我遵循相同的布局,我会得到如下内容:

当然,你的依赖树越深,这可能会失控:

另一种选择是展平树:

但这似乎有些不对劲。您失去了告诉您哪些库与您所依赖的组件一起使用的结构。所以我想知道是否有一个社区驱动的标准方法来做到这一点,并理解从来没有一个适合所有人的尺寸。

谢谢你的时间...

0 投票
2 回答
1395 浏览

build-process - 从递归nmake makefile创建有向无环图?

作为一个练习,并且为了(更好地理解|帮助其他人更好地理解)我公司的构建过程,我希望创建一个构建过程的有向无环图。

据我了解,我工作中的当前构建过程本质上是在根构建目录的 makefil 上运行 nmake。这个 makefile 指定要构建的组件列表,并且对于每个组件,构建脚本递归构建子组件、子子组件等。某些组件内置在 DLL/Libs 中,可用于在构建其他组件时进行链接组件,这种关系将是依赖关系。即如果组件 B 链接到组件 A 的 lib 文件,则组件 A 是组件 B 的依赖项。

我正在寻找的是如何完成此操作的示例代码,因为我仍在学习编程。任何建议将不胜感激,谢谢!

0 投票
6 回答
1489 浏览

java - Java 是否存在类似 Sprocket 的东西

Sprocket 是一个用于管理 JavaScript 依赖项的 Ruby 库。它可以在 JavaScript 文件中以特殊格式的注释声明依赖关系,并将所有必需的文件连接到服务器端。(在这里阅读更多:http: //getsprockets.org/

在我工作的地方,我们确实需要这样一个框架,但它必须是 Java 库的形式。

这样的事情存在吗?您还提出了哪些其他解决方案来管理 JavaScript 依赖项?

0 投票
2 回答
253 浏览

java - 如何处理主要的框架/依赖升级?

寻找一些在项目中处理主要依赖升级的最佳实践,假设使用依赖管理工具(例如,Maven 2)。

具体来说,我感兴趣的是:

  • 如何使继承的应用程序保持最新(例如,Spring 1.2.x 到 2.5.x)
  • 在这样的大修之后可以采取哪些实践来使应用程序保持最新

欢迎您自己的经验或您遇到/发现有用的任何文章/论文。

编辑: 更新依赖版本号是微不足道的。我更多的是寻找您如何根据对依赖项的更改(弃用、删除、参数/返回值类型的更改等)来处理您需要进行的更改。如果将来有一种好方法可以缓解这些变化,因为保持你的依赖关系是最新的应该可以让你保持在变化之上,并防止浪费大量时间只是为了获得“更安全的 x 2.1 功能” '。

0 投票
2 回答
304 浏览

javascript - Javascript Buildmanagement - “必须拥有”工具?

是否有任何必备的 Java Script (RIA) 开发工具,如 maven、jUnit、Emma、link4j 等用于 Javascript?为更大的应用程序或框架设置持续集成系统的最佳方法是什么?像 jQuery 这样的项目如何测试他们的代码?如何管理依赖项和不同的项目配置?

到目前为止我知道的工具:

  • javascript-maven-tools(maven 是正确的选择吗?)
  • jslint
  • yuicompressor
  • 链轮(5 分钟前找到)
  • jsunit
0 投票
4 回答
4364 浏览

oop - 两个相互依赖的对象。那不好吗?

当我为我的项目构建自己的系统时,我学到了很多关于设计模式的知识。我想问你一个我找不到答案的设计问题。

目前我正在使用套接字构建一个带有多个客户端的小型聊天服务器。现在我有三个班:

  1. 持有 nick、age 和 Room-object 等信息的 Person-class 。
  2. 房间类,包含房间名称、主题和当前在该房间的人员列表等信息。
  3. 酒店级,在服务器上有一个人员列表和一个房间列表。

我做了一个图表来说明它:

我在酒店级的服务器上有一个人员列表,因为跟踪现在有多少在线人员会很好(无需遍历所有房间)。这些人住在酒店级,因为我希望能够在不搜索房间的情况下搜索特定的人。

这是糟糕的设计吗?有没有另一种方法来实现它?

谢谢。

0 投票
5 回答
862 浏览

svn - 在 Subversion 主干中使用 Maven 从源代码构建 JAR

我想在我的项目中使用一个 Java 库。我的项目使用 Maven 来引入依赖项,它适用于除这个库之外的所有内容。问题是,这个库从来没有发布过。作者在 Subversion 存储库中维护源代码,仅在主干中进行更改。

有没有办法告诉 Maven

  1. 从 Subversion 更新(或签出)库的源代码树
  2. 根据它的 POM 构建它
  3. 使用生成的 jar 作为此项目的依赖项
  4. 定期执行此操作(可能在每次构建时)
  5. 对于奖励积分,标记我要使用的那个库的哪个 Subversion 版本

谢谢!