Guest User

Untitled

a guest
Jul 21st, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. package org.sonatype.nexus.maven;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Map;
  6. import java.util.Properties;
  7.  
  8. import org.apache.maven.artifact.repository.ArtifactRepository;
  9. import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
  10. import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
  11. import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
  12. import org.apache.maven.project.DefaultProjectBuildingRequest;
  13. import org.apache.maven.project.ProjectBuilder;
  14. import org.apache.maven.project.ProjectBuildingException;
  15. import org.apache.maven.project.ProjectBuildingRequest;
  16. import org.apache.maven.project.ProjectBuildingResult;
  17. import org.apache.maven.repository.RepositorySystem;
  18. import org.codehaus.plexus.component.annotations.Component;
  19. import org.codehaus.plexus.component.annotations.Requirement;
  20. import org.sonatype.nexus.configuration.application.ApplicationConfiguration;
  21. import org.sonatype.nexus.proxy.item.StorageFileItem;
  22.  
  23. @Component( role = MavenGate.class )
  24. public class DefaultMavenGate
  25. implements MavenGate
  26. {
  27. @Requirement
  28. private ApplicationConfiguration applicationConfiguration;
  29.  
  30. @Requirement
  31. private ProjectBuilder projectBuilder;
  32.  
  33. @Requirement
  34. private RepositorySystem repositorySystem;
  35.  
  36. public ProjectBuildingResult buildMavenProject( StorageFileItem pomItem, List<String> usedNexusRepositoryIds,
  37. List<String> profileIds, Map<String, String> systemProperties,
  38. Map<String, String> userProperties )
  39. throws ProjectBuildingException
  40. {
  41. Properties systemProps = new Properties();
  42. systemProps.putAll( System.getProperties() );
  43. if ( systemProperties != null )
  44. {
  45. systemProps.putAll( systemProperties );
  46. }
  47.  
  48. Properties userProps = new Properties();
  49. if ( userProperties != null )
  50. {
  51. userProps.putAll( userProperties );
  52. }
  53.  
  54. ProjectBuildingRequest config = new DefaultProjectBuildingRequest();
  55.  
  56. String localRepoUrl =
  57. "file://"
  58. + System.getProperty( "nexus.maven.repo.local", applicationConfiguration.getWorkingDirectory(
  59. "maven-repository" ).getAbsolutePath() );
  60.  
  61. config.setLocalRepository( repositorySystem.createArtifactRepository( "local", localRepoUrl,
  62. new DefaultRepositoryLayout(), null, null ) );
  63.  
  64. if ( usedNexusRepositoryIds != null )
  65. {
  66. ArrayList<ArtifactRepository> repositories = new ArrayList<ArtifactRepository>();
  67.  
  68. for ( String nexusRepositoryId : usedNexusRepositoryIds )
  69. {
  70. repositories.add( repositorySystem.createArtifactRepository( nexusRepositoryId, "nexus://"
  71. + nexusRepositoryId, new DefaultRepositoryLayout(), null, null ) );
  72. }
  73.  
  74. config.setRemoteRepositories( repositories );
  75. }
  76.  
  77. if ( profileIds != null )
  78. {
  79. config.setActiveProfileIds( profileIds );
  80. }
  81.  
  82. config.setSystemProperties( systemProps );
  83. config.setUserProperties( userProps );
  84. // nexus will handles caching
  85. config.setForceUpdate( true );
  86.  
  87. return projectBuilder.build( new StorageFileItemModelSource( pomItem ), config );
  88. }
  89. }
Add Comment
Please, Sign In to add comment