Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让Maven忽略本地存储库版本的本地项目_Java_Maven_Maven Compiler Plugin_Maven Site Plugin_Shading - Fatal编程技术网

Java 如何让Maven忽略本地存储库版本的本地项目

Java 如何让Maven忽略本地存储库版本的本地项目,java,maven,maven-compiler-plugin,maven-site-plugin,shading,Java,Maven,Maven Compiler Plugin,Maven Site Plugin,Shading,我有一个多模块的maven项目,在该项目中,我们为Google的Guava添加阴影,将包重新定位到包树中,这样我们就不必担心版本冲突。我知道这是一种相当普遍的做法 构建jar和构建系统一样工作正常。但是,在Maven中执行site:site目标时,它调用compiler:testCompile,此时无法找到重新定位的类。让我指出,早期的testCompile工作得很好 我怀疑这是因为maven shading项目是失败项目的一个对等项目,并且在第二次testCompile执行期间,它找到了sha

我有一个多模块的maven项目,在该项目中,我们为Google的Guava添加阴影,将包重新定位到包树中,这样我们就不必担心版本冲突。我知道这是一种相当普遍的做法

构建jar和构建系统一样工作正常。但是,在Maven中执行site:site目标时,它调用compiler:testCompile,此时无法找到重新定位的类。让我指出,早期的testCompile工作得很好

我怀疑这是因为maven shading项目是失败项目的一个对等项目,并且在第二次testCompile执行期间,它找到了shading项目,查找并找到了要编译的类,因此死亡。目标目录中有一个正确命名的着色jar,它确实包含正在查找的类

我想我想知道的是:是否有一种机制可以告诉maven在子模块中查找jar(源代码从未存在过)并跳过编译的类?我想,作为最后的手段,我可以将刚构建的jar的内容提取到target/classes目录中,以便找到它们


任何帮助都将不胜感激。

我们过去也遇到过同样的问题。最终,阴影人工制品和其他模块有一个单独的发布周期,而它们保持在同一回购协议中:

/pom.xml - root for all child modules, except the shaded one
/shaded/pom.xml - no ref to parent (no <parent> section), own release cycle
/module1/pom.xml - explicit ref to released version of shaded artefact
...
/moduleN/pom.xml
/pom.xml-所有子模块(阴影模块除外)的根目录
/shaded/pom.xml-不参考父级(无章节),自己的发布周期
/module1/pom.xml-显式引用着色人工制品的发布版本
...
/moduleN/pom.xml
在IDE中,这些文件作为独立的项目导入

这在以后变得更加有用,因为重建着色模块实际上一年只发生几次