下面列出了怎么用org.apache.maven.project.MavenProjectBuilder的API类实例代码及写法,或者点击链接到github查看源代码。
/**
*
* @param sink
* @param project
* @param mavenProjectBuilder
* @param locale
* @param listener
*/
public DependenciesRenderer( Sink sink,
MavenProject project,
MavenProjectBuilder mavenProjectBuilder,
ArtifactRepository localRepository,
ArtifactFactory factory,
I18N i18n,
Locale locale,
ReportingResolutionListener listener,
Log log )
{
super( sink );
this.project = project;
this.locale = locale;
this.listener = listener;
this.mavenProjectBuilder = mavenProjectBuilder;
this.localRepository = localRepository;
this.i18n = i18n;
this.factory = factory;
this.log = log;
}
private void setUpProject( File pomFile, AbstractMojo mojo )
throws Exception
{
MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
ArtifactRepositoryFactory artifactRepositoryFactory =
(ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE );
ArtifactRepositoryPolicy policy = new ArtifactRepositoryPolicy( true, "never", "never" );
String localRepoUrl = "file://" + System.getProperty( "user.home" ) + "/.m2/repository";
ArtifactRepository localRepository =
artifactRepositoryFactory.createArtifactRepository( "local", localRepoUrl, new DefaultRepositoryLayout(),
policy, policy );
ProfileManager profileManager = new DefaultProfileManager( getContainer() );
MavenProject project = projectBuilder.buildWithDependencies( pomFile, localRepository, profileManager );
//this gets the classes for these tests of this mojo (exec plugin) onto the project classpath for the test
project.getBuild().setOutputDirectory( new File( "target/test-classes" ).getAbsolutePath() );
setVariableValueToObject( mojo, "project", project );
}
/**
* @param log
* @param sink
* @param locale
* @param i18n
* @param plugins
* @param reports
* @param project
* @param mavenProjectBuilder
* @param artifactFactory
* @param localRepository
*/
public PluginsRenderer(
Log log,
Sink sink,
Locale locale,
I18N i18n,
Set<Artifact> plugins,
Set<Artifact> reports,
MavenProject project,
MavenProjectBuilder mavenProjectBuilder,
ArtifactFactory artifactFactory,
ArtifactRepository localRepository )
{
super( sink );
this.log = log;
this.locale = locale;
this.plugins = new ArrayList<>( plugins );
this.reports = new ArrayList<>( reports );
this.i18n = i18n;
this.project = project;
this.mavenProjectBuilder = mavenProjectBuilder;
this.artifactFactory = artifactFactory;
this.localRepository = localRepository;
}
protected void setUp() throws Exception {
super.setUp();
mavenProjectBuilder = (MavenProjectBuilder) getContainer().lookup(
MavenProjectBuilder.ROLE);
ArtifactFactory artifactFactory = (ArtifactFactory) getContainer()
.lookup(ArtifactFactory.ROLE);
final Map<String, Mojo> mojos = (Map<String, Mojo>) getContainer()
.lookupMap(Mojo.ROLE);
for (Mojo mojo : mojos.values()) {
if (mojo instanceof Hyperjaxb3Mojo) {
this.mojo = (Hyperjaxb3Mojo) mojo;
}
}
MavenSettingsBuilder settingsBuilder = (MavenSettingsBuilder) getContainer()
.lookup(MavenSettingsBuilder.ROLE);
ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) getContainer()
.lookup(ArtifactRepositoryLayout.ROLE, "default");
Settings settings = settingsBuilder.buildSettings();
String url = settings.getLocalRepository();
if (!url.startsWith("file:")) {
url = "file://" + url;
}
localRepository = new DefaultArtifactRepository("local", url,
new DefaultRepositoryLayout());
}
protected void setUp() throws Exception {
super.setUp();
mavenProjectBuilder = (MavenProjectBuilder) getContainer().lookup(
MavenProjectBuilder.ROLE);
}
protected void setUp() throws Exception {
super.setUp();
mavenProjectBuilder = (MavenProjectBuilder) getContainer().lookup(
MavenProjectBuilder.ROLE);
}
protected void setUp() throws Exception {
super.setUp();
mavenProjectBuilder = (MavenProjectBuilder) getContainer().lookup(
MavenProjectBuilder.ROLE);
}
public MavenProjectBuilder getMavenProjectBuilder() {
return mavenProjectBuilder;
}
public void setMavenProjectBuilder(MavenProjectBuilder mavenProjectBuilder) {
this.mavenProjectBuilder = mavenProjectBuilder;
}
public void runTest( String generatorId, String pom, String descriptor, String outputPath )
throws Exception
{
File outputDir = getTestFile( outputPath );
DaemonGenerator generator = (DaemonGenerator) lookup( DaemonGenerator.ROLE, generatorId );
// -----------------------------------------------------------------------
// Build the MavenProject instance
// -----------------------------------------------------------------------
MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
MavenSettingsBuilder settingsBuilder = (MavenSettingsBuilder) lookup( MavenSettingsBuilder.ROLE );
Settings settings = settingsBuilder.buildSettings();
ArtifactRepositoryFactory artifactRepositoryFactory =
(ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE );
String localRepoUrl = new File( settings.getLocalRepository() ).toURL().toExternalForm();
ArtifactRepository localRepository =
artifactRepositoryFactory.createDeploymentArtifactRepository( "local", localRepoUrl,
new DefaultRepositoryLayout(), false );
ProfileManager profileManager = new DefaultProfileManager( getContainer() );
File tempPom = createFilteredFile( pom );
MavenProject project = projectBuilder.buildWithDependencies( tempPom, localRepository, profileManager );
// -----------------------------------------------------------------------
// Clean the output directory
// -----------------------------------------------------------------------
FileUtils.deleteDirectory( outputDir );
FileUtils.forceMkdir( outputDir );
// -----------------------------------------------------------------------
//
// -----------------------------------------------------------------------
DaemonGeneratorService daemonGeneratorService = (DaemonGeneratorService) lookup( DaemonGeneratorService.ROLE );
Daemon model = daemonGeneratorService.loadModel( getTestFile( descriptor ) );
generator.generate( new DaemonGenerationRequest( model, project, localRepository, outputDir, "bin" ) );
}