Usar dependencias opcionales
Será dependiente de coordenadas
<project>
...
<dependencies>
<!-- declare the dependency to be set as optional -->
<dependency>
<groupId>sample.ProjectA</groupId>
<artifactId>Project-A</artifactId>
<version>1.0</version>
<scope>compile</scope>
<optional>true</optional> <!-- value will be true or false only -->
</dependency>
</dependencies>
</project>
Use dependencias opcionales para ahorrar espacio y memoria
Usar escena
Al escribir una biblioteca de clases, como projectX, puede contener muchas funciones, pero projectA que depende de projectX solo usará algunas de las funciones. Para funciones no utilizadas, projectA no quiere confiar en paquetes jar de funciones inútiles. En este momento, projectX necesita usar dependencias opcionales.
projectX -> projectY (opcional)
Proyectos -> projectX
Si projectA no usa clases relacionadas con projectY, projectY no se empaquetará en paquetes de guerra o fatjar.
Si projectA quiere usar todas las funciones, debe introducir explícitamente dependencias relacionadas en su proyecto.