Tag: 依赖管理

解决Maven中库的不兼容版本的依赖关系

我在Maven-Java中遇到依赖问题。 我的问题是两个模块具有不同版本的依赖关系,并且这些版本不兼容。 我可以解决吗? 问题的一个例子 我有三个模块(MA,MB和MC)和两个库(LA和LB),LA有两个版本(v1和v2),它们不兼容 第一个模块MA包含主类,它取决于MB和MC MB模块取决于LA v2。 MC模块取决于LB版本。 LB版本取决于LA v1。 最后,依赖树如下: MA | – MB | | – LA (v2) | – MC | | – LB | | | LA (v1)

将JBoss AS 7库添加为Gradle依赖项

我需要在项目中添加JBoss 7.1.1库作为Gradle依赖项,因为我需要在编译时使用它们。 但我所拥有的所有依赖项都是从Maven Repo中添加的。 我已经看到了如何做到这一点,我可以将它们添加为providedCompile依赖项,在这里使用这种技术。 但是我将它与什么联系起来呢? 如何将我在JBoss模块中使用的库添加为Gradle依赖项? 编辑 我已经看到我可以向我的依赖项添加一个文件树,如下所示: dependencies { provided fileTree(dir: ‘myDir’, include: ‘*.jar’) } 但它不能递归地工作。 它只添加了定义的文件夹,JBoss AS 7.1.1将所有的jars分解为模块,有什么方法可以引用整个模块文件夹,而不是每个特定的文件夹? 我想要做的就像这样,但它不适用于这种语法: dependencies { provided fileTree(dir: ‘%JBOSS_HOME%/modules’, include: ‘*.jar’) }

如何避免库jar中的资源冲突?

我很担心库Foo和Bar每个都在类路径上公开一个具有相同名称的资源,比如本例中的properties.txt 。 假设一个Maven设置并且使用Maven部署了jars ,如果我有这个设置: 图书馆Foo: $ cat Foo/src/main/resources/properties.txt $ Foo 和图书馆酒吧: $ cat Bar/src/main/resources/properties.txt $ Bar 还有一个依赖于它们的App ,其pom看起来像这样 – 简而言之,这只是说“构建一个依赖于jar的jar,依赖于Foo和Bar : org.apache.maven.plugins maven-assembly-plugin bundle-project-sources package single me.unroll.deptest.App true ${buildNumber} jar-with-dependencies 问题是看起来好像是properties.txt文件被破坏了。 让我们尝试一下jar tf : unrollme-dev-dan:target Dan$ jar tf App-1.0-SNAPSHOT-jar-with-dependencies.jar META-INF/ META-INF/MANIFEST.MF properties.txt META-INF/maven/ META-INF/maven/me.unroll.deptest/ META-INF/maven/me.unroll.deptest/Bar/ META-INF/maven/me.unroll.deptest/Bar/pom.xml META-INF/maven/me.unroll.deptest/Bar/pom.properties META-INF/maven/me.unroll.deptest/Foo/ META-INF/maven/me.unroll.deptest/Foo/pom.xml META-INF/maven/me.unroll.deptest/Foo/pom.properties me/ me/unroll/ me/unroll/deptest/ me/unroll/deptest/App.class 所以我在App中运行了一个main类: […]

Maven从伟大的父母那里获取依赖版本,而不是我们父母的依赖管理

下面显示了我的POM的层次结构。 你可以看到我们有一个公司的父亲pom春季启动项目。 这个POM有spring-boot-starter作为它的父级,它导入我们自己的依赖管理BOM。 [INFO] — hierarchy-maven-plugin:1.4:tree (default-cli) @ user-service — [INFO] PARENT com.MY_COMPANY.platform:user:3.20.14-SNAPSHOT [INFO] PARENT com.MY_COMPANY.platform:spring-boot-parent:3.20.12-SNAPSHOT [INFO] PARENT org.springframework.boot:spring-boot-starter-parent:1.5.12.RELEASE [INFO] PARENT org.springframework.boot:spring-boot-dependencies:1.5.12.RELEASE <<<< This pom defines assertJ 2.x [INFO] [ other imports ] [INFO] IMPORT com.MY_COMPANY:dependencyManagementBase:2.23.14-SNAPSHOT <<<<<<<<<<<< This pom defines assertJ 3.x [INFO] IMPORT com.MY_COMPANY.platform:platform-dependency-management:1.20.7 [INFO] ———————————————————————— 为了专注于特定的,我们在依赖管理中定义AssertJ 3; 然而,spring-boot-dependencies定义了AssertJ 2.与assertJ没什么关系,但还有其他类似Mongo-Java-Driver的鱼没有拿起我们的版本。 Maven如何在这里选择优先权? 为什么我们的依赖管理不会战胜远祖的依赖管理? 我还注意到,如果我将AssertJ作为MY_COMPANY.platform:spring-boot-parent的依赖项添加,它也不会在我们的依赖管理中使用该版本(所以我现在只保留它,所以层次结构下显微镜更短)。 编辑 […]

当依赖提供范围时,Maven传递依赖具有范围编译

在我的项目中,我提供了openejb-core依赖,并provided了范围。 但它具有slf4j传递依赖性,其范围是compile (见截图)。 所有其他传递依赖项都按预期提供。 问题 :是错误还是我错过了什么?

项目级自我放置jar的Maven依赖

我创建了java类并转换为jar文件。 所以,我想使用那些我在项目级别放置的jar文件,例如“External Jar”。 所以我需要在maven中编写一个依赖项,当有人导入我的项目时,他们应该能够运行该程序。

Maven POM依赖于ivy.xml文件

是否有一个maven插件,我可以使用它来转换maven pom依赖项,包括传递依赖项到ivy.xml文件?

是否可以使用没有hadoop依赖的apache mahout?

是否可以使用Apache mahout而不依赖于Hadoop。 我想在单个计算机上使用mahout算法,只在我的Java项目中包含mahout库,但我根本不想使用hadoop,因为无论如何我将在单个节点上运行。 那可能吗?

在Ivy中找到隐藏的依赖项

我正在使用Apache Ivy + IvyDE获取项目的依赖项,它们是: 源代码是Maven和JBoss(Hibernate)存储库。 正如您所看到的,我正在使用logback + SLF4J进行日志记录,但由于某种原因,Ivy也会下载log4j和slf4j-log4j,这会导致我的应用程序出现一些小问题。 有没有办法看到为什么会发生这种情况,看看上面哪个依赖项依赖于log4j? 我可以获得从Ivy / IvyDE生成的依赖图/树吗? 那么有没有办法防止这种情况发生?

如何部署OSGi应用程序和依赖项?

OSGi似乎通过不将大量JAR依赖项包装到lib目录中而具有小型可部署工件的优点。 但是,我找不到任何能告诉我将依赖项部署到容器的简单可靠方法。 例如,我有一个使用CXF和几个Spring子项目的应用程序。 如果我需要将此应用程序部署到新的Glassfish服务器,那么最好的方法是什么,确保安装所有依赖项? 我正在使用Maven, 似乎可能有某种方法可以使用一个钩子来查看META-INF / maven目录并从pom.xml中提取依赖项列表并获取所需的库(可能来自当地的回购)。 有没有办法做到这一点? Pax插件听起来像是在做这个,但它似乎是基于提升一个Felix容器? 这不是我想要的,我正在处理已经运行的远程容器。 是否有任何镜头这样的东西存在作为命令行工具而不是GUI?