标签: transitive-dependency

.NET使用传递依赖/引用

我有一个包含3个项目的Visual Studio解决方案:

  • MyWebSite(A)
  • 商业模式(B)
  • 持久性(C)

Persistence,project C,依赖NHibernate并包含所有存储库接口,Hibernate这些存储库的实现以及映射到数据库表的类.

BusinessModel,project B,依赖于C并包含表示业务域实体的所有服务类和类.这些服务使用存储库来检索数据,然后将这些数据转换为业务表示形式在其自己的接口中.

MyWebSite,project A,依赖于A并包含所有MVC类/文件.这里的MVC控制器使用服务类B来执行任何业务逻辑功能.该级别没有任何知识表明项目B使用项目C的存储库来执行其操作.

在一个完美的世界中,我认为该项目A应该参考B哪些参考C文献NHibernate.这似乎不是真的.我发现该项目A需要参考B CNHibernate!我不喜欢我的Web应用程序需要了解我的后端架构的想法,我特别不希望它意识到我正在使用NHibernate我的ORM 这一事实.

有没有办法告诉这些项目在解析引用时使用传递依赖?

我的项目是Visual Studio 2010中的.NET 4,如果该信息有所不同.

编辑:我找到了这个相关问题的答案,这个问题解释了这些引用只有在项目的项目C浮出水面时才需要B.我一直非常坚定不要在层之间有任何泄漏,我知道Hibernate类只用于C所以也许我只是不理解正确...

.net reference n-tier-architecture transitive-dependency

9
推荐指数
0
解决办法
1522
查看次数

Apache 公共配置:ClassNotFoundException:org.apache.commons.beanutils.DynaBean

我的 POM 包含:

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-configuration2</artifactId>
        <version>2.3</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

快速入门指南读取属性文件中的两个示例代码:

Configurations configs = new Configurations();
try
{
    Configuration config = configs.properties(new File("config.properties"));
    // access configuration properties
    ...
}
catch (ConfigurationException cex)
{
    // Something went wrong
}
Run Code Online (Sandbox Code Playgroud)

属性文件,使用 PropertiesConfiguration

Parameters params = new Parameters();
FileBasedConfigurationBuilder<FileBasedConfiguration> builder =
    new FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
    .configure(params.properties()
        .setFileName("usergui.properties"));
try
{
    Configuration config = builder.getConfiguration();
    ...
}
catch(ConfigurationException cex)
{
    // loading of the configuration file failed
}
Run Code Online (Sandbox Code Playgroud)

抛出:

java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean
...
at org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:307)
at org.apache.commons.configuration2.builder.fluent.Parameters.fileBased(Parameters.java:186) …
Run Code Online (Sandbox Code Playgroud)

dependencies pom.xml maven apache-commons-config transitive-dependency

9
推荐指数
1
解决办法
5168
查看次数

更有效地计算每个家属的传递闭包,同时逐步建立有向图

我需要回答这个问题:给定一个依赖图中的节点,通过它们自己的传递依赖对其依赖者进行分组,这些依赖会受特定的起始节点的影响.

换句话说,给定依赖图中的节点,找到直接依赖的集合的集合,其直接依赖于从该特定起始节点导出的公共依赖.

例如,给出伪代码:

let a = 1
let b = 2
let c = a + b
let d = a + b
let e = a
let f = a + e
let g = c + d
Run Code Online (Sandbox Code Playgroud)

你可以计算这个图:

图表图

如果我们用作a起始节点,我们可以看到a两者的依赖性,c并且d具有依赖性g.并且f有依赖ea.

请注意,a根本没有任何影响b,因此在决定如何对依赖者进行分组时不应将其考虑在内a.

使用a作为起始节点,我们想要获得这些分组的依赖集:

groups = {{c, d}, {e, f}}
Run Code Online (Sandbox Code Playgroud)

c并且d具有直接或传递的下游关系,并且e也 …

graph-theory dataflow directed-graph transitive-closure transitive-dependency

9
推荐指数
1
解决办法
476
查看次数

尝试在嵌入式依赖项的Maven中构建OSGi包.似乎无法从BND类路径中排除传递依赖项

基本上,我的Web服务必须可以作为单个OSGi jar包进行部署.因此:

  1. bundle必须包含所有编译和运行时maven依赖项.
  2. 它还必须包含依赖于这些依赖项的所有非可选依赖项(即传递依赖项).

I'm attempting to use the maven-bundle-plugin to accomplish this. I've used Embed-Dependency to get all my compile and runtime dependencies in the bundle, and I've used Embed-Transitive to embed all the transitive dependencies. I then figured out how to use excludeDependencies to exclude Maven dependencies from the BND classpath (they are moved to Private-Package in the Manifest), but for the life of me I can't figure out how to get it to exclude the transitive dependencies. …

osgi bundle maven transitive-dependency

8
推荐指数
1
解决办法
1万
查看次数

禁用特定 MsBuild 项目的传递 PackageReference 依赖项

我正在将旧样式的 MsBuild csproj 项目迁移为使用 PackageReference 格式,但遇到了传递依赖项的问题。

请考虑以下项目 A 引用 NuGet 包 B 和 C,每个项目都包含一个使用 PackageReference 的程序集。在构建项目 A 上,使用 IL 合并将 B 作为公共符号合并到 A 程序集中,将 C 作为内部化符号合并。项目 D 有一个对 A 的项目引用。

传递依赖情况 D 引用 A、B 和 C。构建 D 时,会发生类型错误 CS0433: 类型 'X' 存在于 'A' 和 'B' 中的编译错误。

在上面的场景中,有没有办法强制 D 不添加对 B 或 C 的显式引用?

msbuild nuget transitive-dependency visual-studio-2017 packagereference

8
推荐指数
1
解决办法
7560
查看次数

setup.py 与 conda 安装的依赖项(不是 pip)

我正在研究一个现有的 Python 3 代码库,它提供了一个,setup.py所以代码被安装为一个 Python 库。我试图让与自己的依赖安装了这个内部库(通常的数据科学的人,例如pandaspyodbcsqlalchemy等)。

我希望有这个内部库来处理这些依赖项,并假设如果安装了该库,则假定已安装所有可传递的依赖项。我还想要conda包的 Anaconda ( ) 版本而不是pip版本。

我从 开始requirements.txt,但很快就转移到了这个领域setup.py

  install_requires=[
      "pyodbc>=4.0.27",
      "sqlalchemy>=1.3.8",
      "pandas>=0.25.1",
      "requests>=2.22.0",
      "assertpy>=0.14",
      "cycler>=0.10.0",
  ]
Run Code Online (Sandbox Code Playgroud)

但是,当我运行安装过程时:

  • 要么与 python setup.py install --record installed_files.txt
  • 或与 pip install .

我看到有一些gcc/ C++ 编译正在进行,显示有关 Python 轮子的日志(我不完全理解 Python 蛋和 Python 轮子的含义,但 AFAIK 如果conda可用,那么我应该使用该conda版本而不是蛋/轮子因为那样我就不必处理 Python 代码下面的 C++ 代码了)。

我真的更喜欢必须conda安装这些包含在一些 Python 代码中的 C++ blob …

pip setup.py python-3.x transitive-dependency conda

8
推荐指数
1
解决办法
3711
查看次数

强制版本的传递依赖(依赖的依赖)与yarn

"csv-file-validator": "^1.8.0"我正在使用带有 3 个依赖项的包

 famulus "2.1.2"
 lodash "4.17.15"
 papaparse "^5.2.0"
Run Code Online (Sandbox Code Playgroud)

我想更新/强制lodash使用 to be的版本4.17.20。我发现了选择性依赖解析并在我的package.json

"resolutions": {
  "csv-file-validator/lodash": "^4.17.20"
}
Run Code Online (Sandbox Code Playgroud)

我删除了yarn.lock,node_modules文件夹并yarn install再次运行。然而lodash版本仍然是4.17.15

csv-file-validator@^1.8.0:
version "1.8.0"
resolved "https://pkgs.dev.azure.com/RCTechnologies/EMA/_packaging/EMA/npm/registry/csv-file-validator/-/csv-file-validator-1.8.0.tgz#f8b879f533ce8c84b115d0ed2eca8e691249ec22"
integrity sha1-+Lh59TPOjISxFdDtLsqOaRJJ7CI=
dependencies:
  famulus "2.1.2"
  lodash "4.17.15"
  papaparse "^5.2.0"
Run Code Online (Sandbox Code Playgroud)

有可能实现这一目标吗?如果是的话,我错过了什么吗?

transitive-dependency yarnpkg yarn-lock.json

8
推荐指数
1
解决办法
1634
查看次数

将Maven工件传递下载到本地存储库

我正在尝试将特定工件(及其所有依赖项)下载到计算机的本地存储库.

似乎使用依赖:get目标将是最佳选择,但尽管有文档,它似乎并没有实际获得传递依赖.

下面是一个示例,我尝试使用它dependency:get来下载spring-core jar及其所有依赖项.您会注意到Spring-core jar是唯一下载的东西,尽管这是在清理本地存储库之后完成的.

$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.2:get -DrepoUrl=http://repo1.maven.org/maven2/ -Dartifact=org.springframework:spring-core:3.0.5.RELEASE -Dtransitive=true
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.2:get (default-cli) @ standalone-pom ---
Downloading: http://repo1.maven.org/maven2/org/springframework/spring-core/3.0.5.RELEASE/spring-core-3.0.5.RELEASE.jar
Downloaded: http://repo1.maven.org/maven2/org/springframework/spring-core/3.0.5.RELEASE/spring-core-3.0.5.RELEASE.jar (374 KB at 548.4 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.401s
[INFO] Finished at: Wed May 25 00:29:47 CDT 2011
[INFO] Final Memory: 7M/107M
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)



我的问题是:

  1. 这是dependency:get目标的错误吗?
  2. 如果没有,我做错了什么?
  3. 我可以使用任何替代方法来实现我最初设定的目标吗?

maven transitive-dependency

7
推荐指数
1
解决办法
3937
查看次数

如何关闭maven项目的传递依赖?

我遇到了JIRA帖子,它提供了一个解决方案,在POM的每个依赖项标签中都包含了排除标记.

但是我有大量的项目,每个项目都有大量的依赖标记.<exclusion>在每个依赖标记中包含它是不可行的.

问题:有没有办法全局关闭maven中传递依赖项的导入?

maven-3 maven transitive-dependency

7
推荐指数
1
解决办法
3547
查看次数

使用Apache Maven Shade Plugin排除所有传递依赖项

我使用了Apache Maven Shade Plugin来创建胖jar(包含所有依赖项的所有类的jar).我当前的项目文件夹结构看起来像这样,

> Parent Module (packaging pom)

    > Module 1 (packaging jar)
        > Own classes
        > Dependency-1
        > Dependency-2

    > Module 2 (packaging jar)
        > Own classes
        > Module 1 (I want here only classes written in module-1, not any transitive dependencies)
        > Dependency-1
        > Dependency-2
        > Dependency-3
Run Code Online (Sandbox Code Playgroud)

pom.xml来自父模块的快照,

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
            <execution>
                <id>common-shade</id>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.handlers</resource>
                        </transformer>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.schemas</resource>
                        </transformer>
                    </transformers>
                </configuration>
            </execution>
        </executions>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

pom.xml …

dependency-management maven-plugin maven transitive-dependency maven-shade-plugin

7
推荐指数
0
解决办法
726
查看次数