是否可以在pom中定义依赖关系,使其具有系统范围但指向多个jar?
我确信这是非常不正统的,但我只是想知道这是否可能.所以类似于:
<dependency>
<groupId>foo</groupId>
<artifactId>foo</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/foo/*.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
小智 13
据我所知,您正在寻找一种简单的方法来管理本地jar文件的依赖项(在您的案例中位于'$ {basedir}/lib/foo /'文件夹中).使用addjars-maven-plugin很简单.只需将以下声明添加到您的pom:
<plugin>
<groupId>com.googlecode.addjars-maven-plugin</groupId>
<artifactId>addjars-maven-plugin</artifactId>
<version>1.0.2</version>
<executions>
<execution>
<goals>
<goal>add-jars</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${basedir}/lib/foo</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
首先(我将永远不会重复它),system除非你确切知道你在做什么,否则不鼓励使用范围的依赖.从依赖范围:
system:在项目生命周期的某个阶段需要此依赖项,但这是系统特定的.不鼓励使用此范围:这被认为是一种"高级"功能,只有在您真正理解其使用的所有后果时才能使用,如果实际上无法量化则可能非常困难.根据定义,此范围使您的构建不可移植.在某些边缘情况下可能是必要的.系统范围包括
<systemPath>指向此依赖关系在本地计算机上的物理位置的 元素.因此,它用于指代预期存在于给定本地机器上而不是存储库中的某个工件; 并且其路径可能因机器而异.该systemPathelement可以在其路径中引用环境变量:${JAVA_HOME}例如.
现在,为了严格回答你的问题,如果依赖关系在其条目中相对列出了其他JAR ,那么声明一个system指向几个jar 的范围的依赖是"可能的" .像这样的东西(假设"根"依赖在于):MANIFEST.MFClass-Pathlib
Class-Path: ../lib/bar.jar ../lib/foo.jar
Run Code Online (Sandbox Code Playgroud)
但我不推荐这种方法,特别是在你的特定情况下.相反,请看一下之前的答案,其中我将介绍如何设置基于文件的存储库.
| 归档时间: |
|
| 查看次数: |
14967 次 |
| 最近记录: |