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

Java 如何告诉项目下载内部依赖关系?,java,maven,jar,Java,Maven,Jar,我有一个罐子。这不是一个肥罐子。它只包含我的类。但是我的JAR依赖于azure servicebus。我不想将azure servicebus添加到我的jar中,使其成为一个胖jar 我只是希望当项目添加我的jar时,它应该自动下载azure servicebus 我正在使用Maven创建一个jar(没有依赖项) 我如何具体说明?这可能吗 编辑: 我希望将my jar作为依赖项添加的项目应该下载azure servicebus,而project不必为azure servicebus添加依赖项,或

我有一个罐子。这不是一个肥罐子。它只包含我的类。但是我的JAR依赖于azure servicebus。我不想将azure servicebus添加到我的jar中,使其成为一个胖jar

我只是希望当项目添加我的jar时,它应该自动下载azure servicebus

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

我如何具体说明?这可能吗

编辑:


我希望将my jar作为依赖项添加的项目应该下载azure servicebus,而project不必为azure servicebus添加依赖项,或者我将azure servicebus打包到jar文件中。

假设您的项目中已经有一个maven结构,您应该将以下行添加到
pom.xml

<!-- 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>

com.microsoft.azure

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


从我的观点来看:如果你需要一个依赖项来运行你的程序,只要许可证允许,就包括它

假设您的项目中已经有一个maven结构,您可以将以下行添加到
pom.xml

<!-- 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>

com.microsoft.azure

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


从我的观点来看:如果你需要一个依赖项来运行你的程序,只要许可证允许,就包括它

如果我理解正确,您所说的结构是:

某些项目
依赖于您的jar
,而jar依赖于
azure servicebus


如果
某个项目
您的jar
上声明了一个Maven依赖项,那么它会自动将
azure servicebus
作为依赖项,因为Maven执行可传递的依赖项解析。因此,当您构建
某个项目时,
azure servicebus
将位于类路径上,如果
某个项目
是WAR/EAR,那么
azure servicebus
将成为WAR/EAR的一部分。

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

某些项目
依赖于您的jar
,而jar依赖于
azure servicebus


如果
某个项目
您的jar
上声明了一个Maven依赖项,那么它会自动将
azure servicebus
作为依赖项,因为Maven执行可传递的依赖项解析。因此,当您构建
某个项目时,
azure servicebus
将位于类路径上,如果
某个项目
是WAR/EAR,那么
azure servicebus
将成为WAR/EAR的一部分。

我在不知道非常重要的事情的情况下问了这个问题

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

这个答案让我明白:


感谢所有尝试过的人。

我问了这个问题,却不知道一些非常重要的事情

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

这个答案让我明白:


感谢所有尝试过的人。

这正是我不想要的。我希望作为依赖项添加我的jar的项目应该下载azure servicebus,而不需要project为azure servicebus添加依赖项,或者我将azure servicebus与jar文件打包。@FarazDurrani该如何工作?这听起来像是自相矛盾?…@khmarbaise不。我会写我自己的答案。我能解决它。@khmarbaise我发布了我的答案。这正是我不想要的。我希望作为依赖项添加我的jar的项目应该下载azure servicebus,而不需要project为azure servicebus添加依赖项,或者我将azure servicebus与jar文件打包。@FarazDurrani该如何工作?这听起来像是自相矛盾?…@khmarbaise不。我会写我自己的答案。“我能解决它。”我把我的答案贴了出来。