【问题标题】:Need Multiple versions for same dependency for MavenMaven 的相同依赖项需要多个版本
【发布时间】:2016-02-02 06:41:16
【问题描述】:

我知道这是一个在 Site 上重复出现的问题,但我没有找到解决问题的方法。

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

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

【问题讨论】:

  • 这没有多大意义:如果它们包含相同的类,它们将仅从类路径中找到的第一个存档中加载。如果它们包含不同的类,为什么它是同一个工件?
  • 将它们放入单独的模块中?是的,最好解释一下你为什么要这样做。
  • @ryenus 如何将它们放在单独的模块中。
  • 看到这个:codetab.org/apache-maven-tutorial/maven-multi-module-project,不过你应该自己谷歌一下。

标签: java maven jar


【解决方案1】:

据我所知,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

【讨论】:

    猜你喜欢
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多