Java 如何告诉项目下载内部依赖关系?
我有一个罐子。这不是一个肥罐子。它只包含我的类。但是我的JAR依赖于azure servicebus。我不想将azure servicebus添加到我的jar中,使其成为一个胖jar 我只是希望当项目添加我的jar时,它应该自动下载azure servicebus 我正在使用Maven创建一个jar(没有依赖项) 我如何具体说明?这可能吗 编辑: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添加依赖项,或
我希望将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不。我会写我自己的答案。“我能解决它。”我把我的答案贴了出来。