我在网站上知道它是一个重复的问题,但我找不到解决问题的方法。
我有多个版本的项目特定依赖项,我想要所有这些:
<dependency>
<groupId>com.abc.textile</groupId>
<artifactId>textile-client</artifactId>
<version>431</version>
</dependency>
<dependency>
<groupId>com.abc.textile</groupId>
<artifactId>textile-client</artifactId>
<version>441</version>
</dependency>
<dependency>
<groupId>com.abc.textile</groupId>
<artifactId>textile-client</artifactId>
<version>451</version>
</dependency>
PS:从ANT迁移到MAVEN。因此,ANT可以支持lib文件夹中相同jar的多个版本。(textile-client-431.jar,textile-client-441.jar,textile-client-451.jar
)但是当迁移到MAVEN时,它只需要最新版本(textile-client-451.jar
)。有没有办法包括所有版本。
答案 0 :(得分:0)
据我所知,Maven不允许这样做。 Maven只会解决一个依赖关系,并会避开其他依赖关系。
我没有测试它,但我记得读过两个可能性:
首先,您可以指定不同的配置文件,并且在每个配置文件中,您可以指定版本的依赖关系。像这样:
<profiles>
<profile>
<id>431</id>
<activation>
...
</activation>
<dependencies>
<dependency>
<groupId>com.abc.textile</groupId>
<artifactId>textile-client</artifactId>
<version>431</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>431</id>
<activation>
...
</activation>
<dependencies>
<dependency>
<groupId>com.abc.textile</groupId>
<artifactId>textile-client</artifactId>
<version>431</version>
</dependency>
</dependencies>
</profile>
<profiles>
其次,我前段时间读过有关OSGI的内容,也许它可以帮助你看一看。 http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html