Разработка пользовательского плагина Maven - getArtifacts пуст, хотя зависимости включены - PullRequest
0 голосов
/ 28 декабря 2018

MavenProject.getArtifacts () всегда пуст, хотя я могу видеть, что MavenProject.getDependencies () возвращает требуемый список зависимостей.

Я попытался добавить ArtifactHandled в component.xml и настроилэто правильно, но все еще нет решения

файл component.xml

<components>
    <component>
        <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
        <role-hint>xyz</role-hint>
        <implementation>
            org.apache.maven.artifact.handler.DefaultArtifactHandler
        </implementation>
        <configuration>
            <type>xyz</type>
            <extension>xyz</extension>
            <language>xyz</language>
            <addedToClasspath>true</addedToClasspath>
        </configuration>
    </component>

    <component>
        <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
        <role-hint>xyz</role-hint>
        <implementation>
            org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping
        </implementation>
        <configuration>
            <phases>
                <compile>
                    com.xyz.maven.plugin:otx-maven-plugin:cmp
                </compile>
                <package>
                    com.xyz.maven.plugin:otx-maven-plugin:pkg
                </package>
                <install>
                    org.apache.maven.plugins:maven-install-plugin:2.5.2:install
                </install>
             </phases>
        </configuration>
    </component>
</components>

зависимость в pom.xml

   <dependencies>
    <dependency>
        <groupId>com.xyz.test.Project</groupId>
        <artifactId>testProject</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <type>xyz</type>
        <scope>compile</scope>
    </dependency>
</dependencies>

Я хотел бы знать, как преобразовать getDependencies всвязанные getArtifacts, так как это то, что используется компилятором

1 Ответ

0 голосов
/ 09 января 2019

Кажется, мне нужно было добавить атрибут requireDependencyResolution в аннотацию @Mojo. Для жизненного цикла упаковки мне потребовался requireDependencyResolution = ResolutionScope.RUNTIME. Для жизненного цикла компиляции мне понадобился requireDependencyResolution = ResolutionScope.COMPILE

Пример: @Mojo (name =)«myCompiler», defaultPhase = LifecyclePhase.COMPILE, threadSafe = true, requiredDependencyResolution = ResolutionScope.COMPILE)

...