谈到Maven,我知道:
例如,对于 jar 包装中的 compile 作用域依赖项,在编译时,Maven将简单地从本地/远程存储库获取依赖项,而不包括这种依赖于最终的工件。
如果这一切都是正确的,我的问题是:
1)那么谁经常在运行时为 jar 工件提供编译作用域依赖?
2) jar 中的提供的依赖关系与 war 包装之间的区别是什么?
答案 0 :(得分:1)
1)那么谁经常在运行时为jar工件提供编译范围的依赖?
如果您将Maven assembly plugin集成到pom.xml
,那么带有范围compile
的依赖项将与项目工件一起打包到程序集。不添加范围为provided
的依赖项:
这是一个例子。它假定存在特定的汇编描述符(projectAssembly.xml
),而不是默认汇编描述符
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<finalName>${artifactId}-${version}-distribution</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assembly/projectAssembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
2)jar中提供的依赖与战争包装之间的区别是什么?
在这两种情况下,都不会添加依赖项。