如何告诉项目下载内部依赖?

问题描述 投票:0回答:3

我有一个JAR。它不是FAT JAR。它只包含我的课程。但我的JAR依赖于azure-servicebus。我不想将azure-servicebus添加到我的jar中并使其变成胖罐。

我只是想在项目添加我的jar时,它应该自动下载azure-servicebus。

我正在使用Maven创建一个jar(没有依赖项)。

我该如何指定?这可能吗?

编辑:

我想要添加我的jar作为依赖项的项目应该下载azure-servicebus而不必为azure-servicebus添加依赖项或者在jar文件中打包azure-servicebus。

java maven jar
3个回答
1
投票

假设您的项目中已经有maven结构,您可以在qazxsw poi中添加以下行:

pom.xml

如果您没有maven结构,则需要生成一个。这通常可以在您使用的IDE中实现。

如果你希望生成的jar没有服务总线,你可以使依赖只是某种编译,这或多或少是这个问题的重复:<!-- https://mvnrepository.com/artifact/com.microsoft.azure/azure-servicebus --> <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-servicebus</artifactId> <version>1.2.12</version> </dependency>

但是,这意味着您的目标运行时必须以某种方式包含类的定义(可能通过-cp开关)。

从我的POV:如果您需要依赖项来运行您的程序,只要许可证允许,就包括它。


1
投票

如果我理解正确,你所谈论的结构是:

Is there a Maven "compiler-only" scope for dependency artifacts依赖于依靠some-projectyour-jar

如果azure-servicebus声明对some-project的Maven依赖,那么它会自动将your-jar作为依赖,因为Maven会进行传递依赖性解析。所以当你建立azure-servicebus时,some-project将在类路径上,如果azure-servicebus是WAR / EAR,那么some-project将成为WAR / EAR的一部分。


0
投票

我问这个问题时却不知道非常重要的事情。

当jar放入artifactory时,相应的.pom文件也必须放在它旁边(目录之外)。这个pom文件告诉依赖项目你依赖的jar,它本身就需要依赖。

这个答案让我理解:

azure-servicebus

感谢所有尝试过的人。

© www.soinside.com 2019 - 2024. All rights reserved.