Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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/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
Java 如何在Maven中隐藏编译的间接依赖关系?_Java_Maven - Fatal编程技术网

Java 如何在Maven中隐藏编译的间接依赖关系?

Java 如何在Maven中隐藏编译的间接依赖关系?,java,maven,Java,Maven,我有一个依赖于另一个功能非常广泛的库的库。我希望能够对编译器隐藏间接依赖项,但仍将其打包用于运行时。我想说,我想在我的项目中将间接依赖项的作用域从“compile”更改为“run” 澄清一下:间接依赖关系是一个“实用程序”库,它包含许多我不使用也不想使用的类(例如,它自己的LogManager和Logger,或者是从Date派生的类)。因为我使用的是Eclipse,所以我不想通过点击“Ctrl空格”来意外地引入这些类中的一个“在错误的时刻。用于隐藏旧的依赖项,如下所示:(这里,我们隐藏的是sam

我有一个依赖于另一个功能非常广泛的库的库。我希望能够对编译器隐藏间接依赖项,但仍将其打包用于运行时。我想说,我想在我的项目中将间接依赖项的作用域从“compile”更改为“run”

澄清一下:间接依赖关系是一个“实用程序”库,它包含许多我不使用也不想使用的类(例如,它自己的LogManager和Logger,或者是从Date派生的类)。因为我使用的是Eclipse,所以我不想通过点击“Ctrl空格”来意外地引入这些类中的一个“在错误的时刻。

用于隐藏旧的依赖项,如下所示:(这里,我们隐藏的是
sample.ProjectB


...
示例项目a
项目A
1
编译
示例项目B
B项目
所以这基本上消除了间接依赖的使用。然后,您可以将其作为项目的常规依赖项添加回去,范围是您想要的任何内容。

用于隐藏旧的依赖项,如下所示:(这里,我们隐藏
sample.ProjectB


...
示例项目a
项目A
1
编译
示例项目B
B项目
所以这基本上消除了间接依赖的使用。然后,您可以将其作为项目的常规依赖项添加回去,范围是您想要的任何内容。

用于隐藏旧的依赖项,如下所示:(这里,我们隐藏
sample.ProjectB


...
示例项目a
项目A
1
编译
示例项目B
B项目
所以这基本上消除了间接依赖的使用。然后,您可以将其作为项目的常规依赖项添加回去,范围是您想要的任何内容。

用于隐藏旧的依赖项,如下所示:(这里,我们隐藏
sample.ProjectB


...
示例项目a
项目A
1
编译
示例项目B
B项目

所以这基本上消除了间接依赖的使用。然后,您可以将其作为项目的常规依赖项添加回去,范围是您想要的任何内容。

出于好奇-为什么隐藏?出于好奇-为什么隐藏?出于好奇-为什么隐藏?出于好奇-为什么隐藏?嗯。。如果使用此方法,将出现运行时问题(ClassNotFoundException)。这也将从包d应用程序中删除该库。OP表示他不希望在编译时使用该包。我认为这表明OP不会有classnotfound异常(即,如果某个库在运行时通过反射动态使用)。如果不是这种情况,那么OP不应该在编译时尝试排除。>>“我希望能够对编译器隐藏间接依赖项,但仍然为运行时打包它”。这听起来像是运行时需要依赖关系…@Frobber,谢谢你的想法-如果可行,我会尝试并接受答案。嗯。。如果使用此方法,将出现运行时问题(ClassNotFoundException)。这也将从包d应用程序中删除该库。OP表示他不希望在编译时使用该包。我认为这表明OP不会有classnotfound异常(即,如果某个库在运行时通过反射动态使用)。如果不是这种情况,那么OP不应该在编译时尝试排除。>>“我希望能够对编译器隐藏间接依赖项,但仍然为运行时打包它”。这听起来像是运行时需要依赖关系…@Frobber,谢谢你的想法-如果可行,我会尝试并接受答案。嗯。。如果使用此方法,将出现运行时问题(ClassNotFoundException)。这也将从包d应用程序中删除该库。OP表示他不希望在编译时使用该包。我认为这表明OP不会有classnotfound异常(即,如果某个库在运行时通过反射动态使用)。如果不是这种情况,那么OP不应该在编译时尝试排除。>>“我希望能够对编译器隐藏间接依赖项,但仍然为运行时打包它”。这听起来像是运行时需要依赖关系…@Frobber,谢谢你的想法-如果可行,我会尝试并接受答案。嗯。。如果使用此方法,将出现运行时问题(ClassNotFoundException)。这也将从包d应用程序中删除该库。OP表示他不希望在编译时使用该包。我认为这表明OP不会有classnotfound异常(即,如果某个库在运行时通过反射动态使用)。如果不是这种情况,那么OP不应该在编译时尝试排除。>>“我希望能够对编译器隐藏间接依赖项,但仍然为运行时打包它”。这听起来像是在运行时需要依赖关系…@Frobber,谢谢你的想法-如果可行,我会尝试并接受答案。
<project>
  ...
  <dependencies>
    <dependency>
      <groupId>sample.ProjectA</groupId>
      <artifactId>Project-A</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>  <!-- declare the exclusion here -->
          <groupId>sample.ProjectB</groupId>
          <artifactId>Project-B</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>
  </dependencies>
</project>