需要Maven

时间:2016-02-02 06:41:17

标签: java maven jar

我在网站上知道它是一个重复的问题,但我找不到解决问题的方法。

我有多个版本的项目特定依赖项,我想要所有这些:

<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)。有没有办法包括所有版本。

1 个答案:

答案 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