Как программно назвать задачу Знатока

Я использую Знатока в контексте другого инструмента сборки (leiningen для Clojure, но это не должно иметь значения), и я хотел бы знать, как я назову плагин как dependency:build-путь-к-классу программно (т.е. через API знатока, не через mvn- команда).

17
задан Alex Miller 22 July 2016 в 22:03
поделиться

2 ответа

Посмотрите, как реализован org.apache.maven.plugin.testing.AbstractMojoTestCase из maven-plugin-testing-harness. Вот фрагмент кода из некоторых моих тестов, который может быть полезен.

public abstract class JAXBGenerateTest extends AbstractMojoTestCase {

    static {
        System.setProperty("basedir", getBaseDir().getAbsolutePath());
    }

    protected MavenProjectBuilder mavenProjectBuilder;

    protected void setUp() throws Exception {
        super.setUp();

        mavenProjectBuilder = (MavenProjectBuilder) getContainer().lookup(
                MavenProjectBuilder.ROLE);
    }

    protected static File getBaseDir() {...}

    /**
     * Validate the generation of a java files from purchaseorder.xsd.
     * 
     * @throws MojoExecutionException
     */
    public void testExecute() throws Exception {

        final File pom = new File(getBaseDir(),
        "src/test/resources/test-pom.xml");

        final ArtifactRepository localRepository = new DefaultArtifactRepository( "local", 

                new File(getBaseDir(), "target/test-repository").toURI().toURL().toString()             , new DefaultRepositoryLayout());


        final MavenProject mavenProject = mavenProjectBuilder.build(pom, localRepository, null);


        final XJC2Mojo generator = (XJC2Mojo) lookupMojo("generate", pom);
        generator.setProject(mavenProject);
        generator.setLocalRepository(localRepository);
        generator.setSchemaDirectory(new File(getBaseDir(),"src/test/resources/"));
        generator.setSchemaIncludes(new String[] { "*.xsd" });
        generator.setBindingIncludes(new String[] { "*.xjb" });
        generator.setGenerateDirectory(new File(getBaseDir(), "target/test/generated-sources"));
        generator.setVerbose(true);
        generator.setGeneratePackage("unittest");
        generator.setRemoveOldOutput(false);

        generator.execute();
    }

}
4
ответ дан 30 November 2019 в 13:12
поделиться

Задачи Ant Maven могут дать вам представление о том, как это сделать (DependenciesTask source). Другим маршрутом может быть PomModuleDescriptorParser, используемый Ivy.

0
ответ дан 30 November 2019 в 13:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: