运行Maven依赖时如何排除项目内依赖

时间:2020-01-16 09:45:01

标签: maven

我有一个多模块项目,我想在其中下载所有依赖项以供离线使用。我使用mvn dependency:go-offline目标。在项目中,有一个模块X依赖于另一个模块Y。由于dependency:go-offline命令没有构建模块,因此在构建X时会出现一个错误,即找不到依赖项Y:

$ mvn dependency:go-offline -Dmaven.artifact.threads=30

 Failure to find se.cust.id:Y:jar:1.2.3-SNAPSHOT in https://mvn.com.com/repository/com-snapshots/ was cached in the local repository, resolution will not be reattempted until the update interval of com-snapshots has elapsed or updates are forced

我试图通过运行使Maven忽略此依赖项

$ mvn dependency:go-offline -DexcludeArtifactIds=Y

但这会导致相同的错误。在这里排除依赖项的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

maven-dependency-plugin 添加到父 pom.xml 对我有用

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <version>3.1.2</version>
</plugin>

答案 1 :(得分:0)

我在用Dockerfile封装Maven构建时遇到了问题(例如:http://whitfin.io/speeding-up-maven-docker-builds/

到目前为止,我的解决方法是仅使依赖项获取失败,这在我的Dockerfile中如下所示:

RUN mvn -B dependency:go-offline -DexcludeGroupIds=my.company || true

我可以告诉-DexcludeGroupIds不起作用,因为出现错误:

Failure to find my.company:subproject-built-here:jar:1-SNAPSHOT in http://packages.confluent.io/maven/ was cached in the local repository, resolution will not be reattempted until...

已经下载并缓存了足够多的依赖项,以后我仍然会看到速度加快,但是我宁愿防止错误而不是忽略错误。