Maven 从依赖 jar 中删除版本

dej*_*vid 6 pom.xml maven-3 maven maven-dependency-plugin

我想知道是否有办法从 maven 依赖项中删除版本号。

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

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我的 pom 配置说,它正在将依赖项提取到./lib我的项目内的目录中。
我想要实现的是从commons-lang3-3.4.jar. 它看起来像:

./lib/commons-lang3.jar

问题:有没有办法做这样的事情?

在这里指定 finalName 无济于事。

<build>
    <finalName>${project.name}-testing</finalName>
</build>
Run Code Online (Sandbox Code Playgroud)

在我现有的配置之下:

<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>
Run Code Online (Sandbox Code Playgroud)

A_D*_*teo 5

要从复制的依赖项中删除版本,您可以使用以下stripVersion选项maven-dependency-plugin

在复制期间剥离工件版本

其中默认值为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>
Run Code Online (Sandbox Code Playgroud)