两者都是用在依赖排除中
optional可以禁止掉传递依赖,例如:
A->B B->C 那么传递依赖就应该有A->C,如果B中pom.xml
<dependency>
<groupId>org.project</groupId>
<artifactId>C</artifactId>
<version>1.0</version>
<optional>true</optional>
</dependency>
那么A就不会依赖
exclusion显式的排除某个依赖,例如
<dependency>
<groupId>org.project</groupId>
<artifactId>B</artifactId>
<version>1.0</version>
<exclusions>
<exclusion>
<groupId>org.project</groupId>
<artifactId>C</artifactId>
</exclusion>
</exclusions>
</dependency>