public List<String> findVersions( Artifact artifact ) { String key = artifact.getGroupId() + ':' + artifact.getArtifactId(); List<MavenProject> projects = projectsByGA.get( key ); if ( projects == null || projects.isEmpty() ) { return Collections.emptyList(); } List<String> versions = new ArrayList<String>(); for ( MavenProject project : projects ) { if ( find( project, artifact ) != null ) { versions.add( project.getVersion() ); } } return Collections.unmodifiableList( versions ); }
private File find( MavenProject project, Artifact artifact ) { if ( "pom".equals( artifact.getExtension() ) ) { return project.getFile(); } org.apache.maven.artifact.Artifact matchingArtifact = findMatchingArtifact( project, artifact ); if ( matchingArtifact != null ) { return matchingArtifact.getFile(); } return null; }
/** * Tries to resolve the specified artifact from the artifacts of the given project. * * @param project The project to try to resolve the artifact from, must not be <code>null</code>. * @param requestedArtifact The artifact to resolve, must not be <code>null</code>. * @return The matching artifact from the project or <code>null</code> if not found. */ private org.apache.maven.artifact.Artifact findMatchingArtifact( MavenProject project, Artifact requestedArtifact ) { String requestedRepositoryConflictId = getConflictId( requestedArtifact ); org.apache.maven.artifact.Artifact mainArtifact = project.getArtifact(); if ( requestedRepositoryConflictId.equals( getConflictId( mainArtifact ) ) ) { mainArtifact.setFile( new File( workspaceRoot, project.getArtifactId() ) ); return mainArtifact; } Collection<org.apache.maven.artifact.Artifact> attachedArtifacts = project.getAttachedArtifacts(); if ( attachedArtifacts != null && !attachedArtifacts.isEmpty() ) { for ( org.apache.maven.artifact.Artifact attachedArtifact : attachedArtifacts ) { if ( requestedRepositoryConflictId.equals( getConflictId( attachedArtifact ) ) ) { attachedArtifact.setFile( new File( workspaceRoot, project.getArtifactId() ) ); return attachedArtifact; } } } return null; }
mavenEmbedderRequest.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0 ); } else { reactorReader = new ReactorReader( new HashMap<String, MavenProject>(), new File(workspaceProper) ); mavenEmbedderRequest.setWorkspaceReader( reactorReader ); rootProject = mavenProject; mps.add( mavenProject ); reactorReader.addProject( mavenProject ); if (!this.nonRecursive) { readChilds( mavenProject, embedder, mps, reactorReader );
private void readChilds(MavenProject mp, MavenEmbedder mavenEmbedder, List<MavenProject> mavenProjects, ReactorReader reactorReader) throws ProjectBuildingException, MavenEmbedderException { if (mp.getModules() == null || mp.getModules().isEmpty()) { return; } for (String module : mp.getModules()) { if ( Util.fixEmptyAndTrim( module ) != null ) { File pomFile = new File(mp.getFile().getParent(), module); MavenProject mavenProject2 = null; // take care of HUDSON-8445 if (pomFile.isFile() && pomFile.exists()) mavenProject2 = mavenEmbedder.readProject( pomFile ); else mavenProject2 = mavenEmbedder.readProject( new File(mp.getFile().getParent(), module + "/pom.xml") ); mavenProjects.add( mavenProject2 ); reactorReader.addProject( mavenProject2 ); readChilds( mavenProject2, mavenEmbedder, mavenProjects, reactorReader ); } } }
mer.setValidationLevel(VALIDATION_LEVEL_MAVEN_3_0); } else { reactorReader = new ReactorReader( new HashMap<String, MavenProject>(), new File(workspaceProper) ); mer.setWorkspaceReader(reactorReader); rootProject = mavenProject; mps.add( mavenProject ); reactorReader.addProject( mavenProject ); if (!this.nonRecursive) { readChilds( mavenProject, embedder, mps, reactorReader );
private void readChilds(MavenProject mp, MavenEmbedder mavenEmbedder, List<MavenProject> mavenProjects, ReactorReader reactorReader) throws ProjectBuildingException, MavenEmbedderException { if (mp.getModules() == null || mp.getModules().isEmpty()) { return; } for (String module : mp.getModules()) { if ( Util.fixEmptyAndTrim( module ) != null ) { File pomFile = new File(mp.getFile().getParent(), module); MavenProject mavenProject2 = null; // take care of HUDSON-8445 if (pomFile.isFile()) mavenProject2 = mavenEmbedder.readProject( pomFile ); else mavenProject2 = mavenEmbedder.readProject( new File(mp.getFile().getParent(), module + "/pom.xml") ); mavenProjects.add( mavenProject2 ); reactorReader.addProject( mavenProject2 ); readChilds( mavenProject2, mavenEmbedder, mavenProjects, reactorReader ); } } }
public File findArtifact( Artifact artifact ) { String projectKey = artifact.getGroupId() + ':' + artifact.getArtifactId() + ':' + artifact.getVersion(); MavenProject project = projectsByGAV.get( projectKey ); if ( project != null ) { return find( project, artifact ); } return null; }