Maven移除依赖jar包的版本号

7

我想知道是否有一种方法可以从Maven依赖项中删除版本号。

假设对于我的项目,我想使用Maven依赖插件获取commons-lang3 3.4

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>

我的pom配置显示,它正在将依赖项提取到项目内的./lib目录。
我想要实现的是从commons-lang3-3.4.jar中移除即时版本号。它应该长这样:
./lib/commons-lang3.jar

问题:有没有办法做到这件事情?

指定finalName在这里不会有帮助。

<build>
    <finalName>${project.name}-testing</finalName>
</build>

以下是我的现有配置:
<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${dir.javaLibs}</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

你能分享更多关于你的 pom.xml 配置的信息吗?它们是如何复制到你的 lib 文件夹中的? - A_Di-Matteo
你是否正在使用 maven-dependency-plugin:copy-dependencies 目标? - Tunaki
你正在做什么样的项目?WAR/EAR?还是其他不同的类型? - khmarbaise
这是一个有些不同的项目。虽然它是一个“脚本”项目,但我将其配置为Maven项目以获取流程中使用的.jar依赖项。我使用了copy-dependencies目标。请参见我的pom.xml文件的一部分:http://pastebin.com/WBuAcnzw - dejvid
@dejvid,请下次直接在问题中添加配置(并从一开始就添加):这将简化和加快反馈的速度 :) - A_Di-Matteo
1个回答

6
为了从复制的依赖项中删除版本号,您可以使用maven-dependency-pluginstripVersion 选项:

复制时删除构件版本号

此选项的默认值为 false

因此,根据您现有的配置,以下是更改:

<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${dir.javaLibs}</outputDirectory>

                            <!-- new configuration entry below-->
                            <stripVersion>true</stripVersion>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接