public static MavenCoordinates parse(String coordinates) {
MavenCoordinates result;
String[] parts = coordinates.split(":");
if (parts.length == 3) {
result = new MavenCoordinates(parts[0], parts[1], parts[2], null, null);
} else if (parts.length == 4) {
result = new MavenCoordinates(parts[0], parts[1], parts[3], parts[2], null);
} else if (parts.length == 5) {
result = new MavenCoordinates(parts[0], parts[1], parts[4], parts[2], parts[3]);
} else {
throw new IllegalArgumentException("Invalid coordinates: " + coordinates);
}
return result;
}