[Maven]项目中遇到的参数作用记录

  • Post author:
  • Post category:其他



Maven Scope

* compile,缺省值,适用于所有阶段,会随着项目一起发布。

* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。

* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它

示例:

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<scope>provided</scope>
		</dependency>


Maven optional 可选依赖

应用场景:projectA 依赖projectB,  projectB 依赖projectC时

<dependency>
  <groupId>com.itear.projectB</groupId>
  <artifactId>projectB</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <optional>true</optional>
</dependency>

当projectB的<optional>true</optional>时, projectA中如果没有显式的引入projectC, 则projectA不依赖projectC, 即projectA可以自己选择是否依赖projectC

默认<optional>的值为false, 及子项目必须依赖



版权声明:本文为qq_26878363原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。