system
dependencies are sought at a specific, specified path. This drastically reduces portability because if you deploy your artifact
in an environment that’s not configured just like yours is, your code won’t work.
Noncompliant code example
<dependency>
<groupId>javax.sql</groupId>
<artifactId>jdbc-stdext</artifactId>
<version>2.0</version>
<scope>system</scope> <!-- Noncompliant -->
<systemPath>/usr/bin/lib/rt.jar</systemPath> <!-- remove this -->
</dependency>
Compliant solution
<dependency>
<groupId>javax.sql</groupId>
<artifactId>jdbc-stdext</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>