【问题标题】:How do we change the location for a specific dependency defined in pom.xml for a Java project?我们如何更改在 pom.xml 中为 Java 项目定义的特定依赖项的位置?
【发布时间】:2019-09-19 06:05:43
【问题描述】:

我知道我们可以通过标签更改所有依赖项的位置,但我需要在构建期间将特定依赖项放在另一个位置?

【问题讨论】:

  • “位置”是什么意思?您指的是文件系统上的本地 Maven 存储库缓存吗?
  • pox.xml 中定义的jars 目前正在target\lib 目录下生成。我希望其中一些 jar 在 lib 中生成,而另一些在其他目录中生成。
  • 对不起,你让我更困惑了。您是在询问依赖项,即从网络下载并缓存在本地 Maven 存储库中的第三方 jar,还是询问您自己生成的 jar 文件 通过 maven 构建脚本?
  • 我说的是maven构建脚本生成的jars。

标签: java maven dependencies pom.xml


【解决方案1】:

您可以使用 maven-antrun-plugin 移动依赖项

在本例中,我创建了一个名为 lib2 的新文件夹,然后将dependencieA.jar 移动到 lib2 中

....
<plugins>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.8</version>
            <executions>
                <execution>
                    <id>move</id>
                    <phase>package</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <target>
                            <mkdir dir="target/lib2" />
                            <move file="target/lib/dependencieA.jar" tofile="target/lib2/dependencieA.jar" /> 
                        </target>
                    </configuration>
                </execution>
            </executions>
        </plugin>
<plugins>
...

【讨论】:

  • 当我这样做时,我会在 target/lib2 文件夹中获得指定的依赖项。但我也在使用 maven-ear-plugin 为这个构建生成一个 .ear 包。而且我没有在 target/file.ear 的 lib2 文件夹中看到依赖项。我需要更改任何插件的目标吗?
  • 是否还要将依赖项复制到耳朵中?
  • 是的,我想把依赖复制到最后的耳朵里。
猜你喜欢
  • 1970-01-01
  • 2019-10-26
  • 2018-02-10
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 2014-07-17
相关资源
最近更新 更多