private Dependency findProvidedDependencies( Dependency dexDependency, MavenProject project ) { for ( Dependency dependency : project.getDependencies() ) { if ( dependency.getScope().equals( Artifact.SCOPE_PROVIDED ) ) { if ( dependency.getArtifactId().equals( dexDependency.getArtifactId() ) && dependency.getGroupId().equals( dexDependency.getGroupId() ) && dependency.getType().equals( dexDependency.getType() ) && dependency.getVersion().equals( dexDependency.getVersion() ) ) { return dependency; } } } return null; }
/** * Determines if the groupId, artifactId, and version of the Maven * dependency and artifact match. * * @param d the Maven dependency * @param a the Maven artifact * @return true if the groupId, artifactId, and version match */ private static boolean artifactsMatch(org.apache.maven.model.Dependency d, Artifact a) { return (isEqualOrNull(a.getArtifactId(), d.getArtifactId())) && (isEqualOrNull(a.getGroupId(), d.getGroupId())) && (isEqualOrNull(a.getVersion(), d.getVersion())); }
private void mergeDependencyWithDefaults( Dependency dep, Dependency def ) { if ( dep.getScope() == null && def.getScope() != null ) { dep.setScope( def.getScope() ); dep.setSystemPath( def.getSystemPath() ); } if ( dep.getVersion() == null && def.getVersion() != null ) { dep.setVersion( def.getVersion() ); } if ( dep.getClassifier() == null && def.getClassifier() != null ) { dep.setClassifier( def.getClassifier() ); } if ( dep.getType() == null && def.getType() != null ) { dep.setType( def.getType() ); } List exclusions = dep.getExclusions(); if ( exclusions == null || exclusions.isEmpty() ) { dep.setExclusions( def.getExclusions() ); } }
public String getArtifact() { // If the jar name has been explicty set then use that. This // is when the <jar/> element is explicity used in the POM. if ( getJar() != null) { return getJar(); } String artifact; if ("ejb-client".equals(getType())) { artifact = getArtifactId() + "-" + getVersion() + "-client." + getExtension(); } else { artifact = getArtifactId() + "-" + getVersion() + "." + getExtension(); } return artifact; }
private static boolean dependenciesEquals( List<Dependency> a, List<Dependency> b ) { if ( a.size() != b.size() ) { return false; } Iterator<Dependency> aI = a.iterator(); Iterator<Dependency> bI = b.iterator(); while ( aI.hasNext() ) { Dependency aD = aI.next(); Dependency bD = bI.next(); boolean r = Objects.equals( aD.getGroupId(), bD.getGroupId() ) // && Objects.equals( aD.getArtifactId(), bD.getArtifactId() ) // && Objects.equals( aD.getVersion(), bD.getVersion() ) // && Objects.equals( aD.getType(), bD.getType() ) // && Objects.equals( aD.getClassifier(), bD.getClassifier() ) // && Objects.equals( aD.getScope(), bD.getScope() ); r &= exclusionsEquals( aD.getExclusions(), bD.getExclusions() ); if ( !r ) { return false; } } return true; }
private void validateEffectiveModelAgainstDependency( String prefix, ModelProblemCollector problems, Model m, Dependency d, ModelBuildingRequest request ) { String key = d.getGroupId() + ":" + d.getArtifactId() + ":" + d.getVersion() + ( d.getClassifier() != null ? ":" + d.getClassifier() : "" ); String mKey = m.getGroupId() + ":" + m.getArtifactId() + ":" + m.getVersion(); if ( key.equals( mKey ) ) { // This means a module which is build has a dependency which has the same // groupId, artifactId, version and classifier coordinates. This is in consequence // a self reference or in other words a circular reference which can not being resolved. addViolation( problems, Severity.FATAL, Version.V31, prefix + " " + key, key, "is referencing itself.", d ); } }
if ( !"pom".equals( dependency.getType() ) ) if ( equals( "LATEST", dependency.getVersion() ) || equals( "RELEASE", dependency.getVersion() ) ) if ( equals( existing.getVersion(), dependency.getVersion() ) ) + StringUtils.defaultString( dependency.getVersion(), "(?)" ); msg = "version " + StringUtils.defaultString( existing.getVersion(), "(?)" ) + " vs " + StringUtils.defaultString( dependency.getVersion(), "(?)" );
public static int pluginHashCode( Plugin plugin ) { int hash = 17; hash = hash * 31 + Objects.hashCode( plugin.getGroupId() ); hash = hash * 31 + Objects.hashCode( plugin.getArtifactId() ); hash = hash * 31 + Objects.hashCode( plugin.getVersion() ); hash = hash * 31 + ( plugin.isExtensions() ? 1 : 0 ); for ( Dependency dependency : plugin.getDependencies() ) { hash = hash * 31 + Objects.hashCode( dependency.getGroupId() ); hash = hash * 31 + Objects.hashCode( dependency.getArtifactId() ); hash = hash * 31 + Objects.hashCode( dependency.getVersion() ); hash = hash * 31 + Objects.hashCode( dependency.getType() ); hash = hash * 31 + Objects.hashCode( dependency.getClassifier() ); hash = hash * 31 + Objects.hashCode( dependency.getScope() ); for ( Exclusion exclusion : dependency.getExclusions() ) { hash = hash * 31 + Objects.hashCode( exclusion.getGroupId() ); hash = hash * 31 + Objects.hashCode( exclusion.getArtifactId() ); } } return hash; }
final Artifact artifact = new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), "", "pom", dependency.getVersion() ); dependency.getVersion() ), dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() ); dependency.getVersion() ), dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() ); return resolveModel( dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() ); throw new UnresolvableModelException( e.getMessage(), dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), e );
if ( dep.getType().equals( "pom" ) && Artifact.SCOPE_IMPORT.equals( dep.getScope() ) ) if ( dep.getType().equals( "pom" ) && Artifact.SCOPE_IMPORT.equals( dep.getScope() ) ) Artifact artifact = artifactFactory.createProjectArtifact( dep.getGroupId(), dep.getArtifactId(), dep.getVersion(), dep.getScope() ); MavenProject project = buildFromRepository(artifact, parentSearchRepositories, localRepository, false);
final Artifact artifact = new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), "", "pom", dependency.getVersion() ); dependency.getVersion() ), dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() ); dependency.getVersion() ), dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() ); return resolveModel( dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() ); throw new UnresolvableModelException( e.getMessage(), dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), e );
public Artifact createDependencyArtifact( Dependency d ) if ( d.getVersion() == null ) try versionRange = VersionRange.createFromVersionSpec( d.getVersion() ); createDependencyArtifactX( d.getGroupId(), d.getArtifactId(), versionRange, d.getType(), d.getClassifier(), d.getScope(), d.isOptional() );
private void validate20RawDependenciesSelfReferencing( ModelProblemCollector problems, Model m, List<Dependency> dependencies, String prefix, ModelBuildingRequest request ) { // We only check for groupId/artifactId/version/classifier cause if there is another // module with the same groupId/artifactId/version/classifier this will fail the build // earlier like "Project '...' is duplicated in the reactor. // So it is sufficient to check only groupId/artifactId/version/classifier and not the // packaging type. for ( Dependency dependency : dependencies ) { String key = dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion() + ( dependency.getClassifier() != null ? ":" + dependency.getClassifier() : "" ); String mKey = m.getGroupId() + ":" + m.getArtifactId() + ":" + m.getVersion(); if ( key.equals( mKey ) ) { // This means a module which is build has a dependency which has the same // groupId, artifactId, version and classifier coordinates. This is in consequence // a self reference or in other words a circular reference which can not being resolved. addViolation( problems, Severity.FATAL, Version.V31, prefix + " " + key, key, "is referencing itself.", dependency ); } } }
try versionRange = VersionRange.createFromVersionSpec( d.getVersion() ); d.getVersion(), d ), e ); return null; artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(), versionRange, d.getType(), d.getClassifier(), d.getScope(), d.isOptional() );
addEdge( projectMap, vertexMap, project, projectVertex, dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), false, false ); addEdge( projectMap, vertexMap, project, projectVertex, dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), false, true );
private Dependency convert( org.apache.maven.model.Dependency dependency, ArtifactTypeRegistry stereotypes ) { ArtifactType stereotype = stereotypes.get( dependency.getType() ); if ( stereotype == null ) { stereotype = new DefaultArtifactType( dependency.getType() ); } boolean system = dependency.getSystemPath() != null && dependency.getSystemPath().length() > 0; Map<String, String> props = null; if ( system ) { props = Collections.singletonMap( ArtifactProperties.LOCAL_PATH, dependency.getSystemPath() ); } Artifact artifact = new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), dependency.getClassifier(), null, dependency.getVersion(), props, stereotype ); List<Exclusion> exclusions = new ArrayList<>( dependency.getExclusions().size() ); for ( org.apache.maven.model.Exclusion exclusion : dependency.getExclusions() ) { exclusions.add( convert( exclusion ) ); } Dependency result = new Dependency( artifact, dependency.getScope(), dependency.getOptional() != null ? dependency.isOptional() : null, exclusions ); return result; }
private MavenProject findProjectFromReactor(final Dependency d) { for (final MavenProject p : reactorProjects) { if (p.getGroupId().equals(d.getGroupId()) && p.getArtifactId().equals(d.getArtifactId()) && p.getVersion().equals(d.getVersion())) { return p; } } return null; }
public static Dependency toDependency( org.apache.maven.model.Dependency dependency, ArtifactTypeRegistry stereotypes ) { ArtifactType stereotype = stereotypes.get( dependency.getType() ); if ( stereotype == null ) { stereotype = new DefaultArtifactType( dependency.getType() ); } boolean system = dependency.getSystemPath() != null && dependency.getSystemPath().length() > 0; Map<String, String> props = null; if ( system ) { props = Collections.singletonMap( ArtifactProperties.LOCAL_PATH, dependency.getSystemPath() ); } Artifact artifact = new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), dependency.getClassifier(), null, dependency.getVersion(), props, stereotype ); List<Exclusion> exclusions = new ArrayList<>( dependency.getExclusions().size() ); for ( org.apache.maven.model.Exclusion exclusion : dependency.getExclusions() ) { exclusions.add( toExclusion( exclusion ) ); } Dependency result = new Dependency( artifact, dependency.getScope(), dependency.getOptional() != null ? dependency.isOptional() : null, exclusions ); return result; }
private void deps(PrintWriter pw, String elementName, List<Dependency> deps) { if (!deps.isEmpty()) { pw.print(indent + elementName + ": [ "); for (int i = 0; i < deps.size(); i++) { Dependency d = deps.get(i); if (i != 0) { pw.print(" "); } if (d.getVersion() != null) { pw.print(d.getGroupId() + ":" + d.getArtifactId() + ":" + d.getVersion()); } else { // // We are assuming the model is well-formed and that the parent is providing a version // for this particular dependency. // pw.print(d.getGroupId() + ":" + d.getArtifactId()); } if (d.getClassifier() != null) { pw.print("(" + d.getClassifier() + ")"); } if (i + 1 != deps.size()) { pw.println(); } } pw.println(" ]"); } }
private static Artifact createDependencyArtifact( ArtifactFactory factory, Dependency dependency, String inheritedScope, ArtifactFilter inheritedFilter ) throws InvalidVersionSpecificationException { String effectiveScope = getEffectiveScope( dependency.getScope(), inheritedScope ); if ( effectiveScope == null ) { return null; } VersionRange versionRange = VersionRange.createFromVersionSpec( dependency.getVersion() ); Artifact dependencyArtifact = factory.createDependencyArtifact( dependency.getGroupId(), dependency.getArtifactId(), versionRange, dependency.getType(), dependency.getClassifier(), effectiveScope, dependency.isOptional() ); ArtifactFilter dependencyFilter = inheritedFilter; if ( dependencyFilter != null && !dependencyFilter.include( dependencyArtifact ) ) { return null; } if ( Artifact.SCOPE_SYSTEM.equals( effectiveScope ) ) { dependencyArtifact.setFile( new File( dependency.getSystemPath() ) ); } dependencyArtifact.setDependencyFilter( createDependencyFilter( dependency, dependencyFilter ) ); return dependencyArtifact; }