通常(我只见过这样的)maven工件是一个jar。有没有可能把maven人工制品做成几个jar。目前,我必须将几个第三方库添加到我的nexus中—我希望它们作为一个工件在maven中引用。
bf1o4zei1#
通常(我只见过这样的)maven工件是一个jar。有没有可能把maven人工制品做成几个jar。这一说法部分是正确的。是的,maven工件是一个jar单元,但是这个jar单元很可能需要多个其他jar才能正常工作。一个这样的例子可能是 spring-core jar。如果您只在应用程序中添加springcorejar,它很可能会给您一个classnotfoundexception,并抱怨其他多个缺少的依赖项(如log4j、springweb、commons等)。为了解决这个嵌套依赖问题,我们在maven中引入了传递依赖的概念目前,我必须添加几个第三方libs到我的nexus在我看来,这是好的,这是它应该的。所有工件和jar库应该是分开的。我希望它们在maven中作为一个工件被引用。不过,如果您想创建一个大(胖)jar,请看一下如何在maven中创建一个uber着色jar
spring-core
5t7ly7z52#
你应该好好读一读 pom 依赖关系 <scope>import</scope> 如图所示。基本上,您需要用所有需要的依赖项创建pom,然后用scope定义对它的依赖项 import .
pom
<scope>import</scope>
import
ia2d9nvy3#
如果您只想将它们全部包含在一起,那么可以创建一个pom项目,该项目将所有第三方库作为依赖项。因此,只需将pom项目添加为依赖项:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>my.demo</groupId> <artifactId>all-my-libs</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <dependencies> <dependency> <groupId>l1</groupId> <artifactId>lib1</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>l2</groupId> <artifactId>lib2</artifactId> <version>1.0</version> </dependency> ... </dependencies> </project>
这样,您仍然会有几个jar,但只有一个依赖项。
3条答案
按热度按时间bf1o4zei1#
通常(我只见过这样的)maven工件是一个jar。有没有可能把maven人工制品做成几个jar。
这一说法部分是正确的。是的,maven工件是一个jar单元,但是这个jar单元很可能需要多个其他jar才能正常工作。一个这样的例子可能是
spring-core
jar。如果您只在应用程序中添加springcorejar,它很可能会给您一个classnotfoundexception,并抱怨其他多个缺少的依赖项(如log4j、springweb、commons等)。为了解决这个嵌套依赖问题,我们在maven中引入了传递依赖的概念目前,我必须添加几个第三方libs到我的nexus
在我看来,这是好的,这是它应该的。所有工件和jar库应该是分开的。
我希望它们在maven中作为一个工件被引用。
不过,如果您想创建一个大(胖)jar,请看一下如何在maven中创建一个uber着色jar
5t7ly7z52#
你应该好好读一读
pom
依赖关系<scope>import</scope>
如图所示。基本上,您需要用所有需要的依赖项创建pom,然后用scope定义对它的依赖项
import
.ia2d9nvy3#
如果您只想将它们全部包含在一起,那么可以创建一个pom项目,该项目将所有第三方库作为依赖项。因此,只需将pom项目添加为依赖项:
这样,您仍然会有几个jar,但只有一个依赖项。