project.compileClasspathElements по умолчанию между Maven 2 и 3 - PullRequest
1 голос
/ 10 января 2011

Я унаследовал проект / модуль Maven, который потерпел неудачу при переключении с Maven 2 на Maven 3. Это зависит от выполнения внешней программы, которая зависит от содержимого проекта / module / target / classpath.txt.Этот файл генерируется пользовательским плагином, который использует $ {project.compileClasspathElements}.

В Maven 2 это содержало:

project/module/target/classes
[all my dependencies in my local repository]

Но в Maven 3 файл classpath.txt содержит только:

project/module/target/classes

Другими словами, файлпропуская все фактические зависимости, сохраните для каталога сборки.Были ли изменения между Maven 2 и Maven 3 в отношении project.compileClasspathElements?Как мне вернуть все зависимости, чтобы они работали как Maven 2?

[Этот вопрос был отредактирован, чтобы отразить источник classpath.txt, который я только что открыл.]

1 Ответ

1 голос
/ 24 января 2011

Только что столкнулся с этой проблемой при переносе плагина maven 2, который выполняется во время фазы пакета.Исправлено добавлением

@requiresDependencyResolution compile+runtime

к Mojo, например:

/**
 * blah blah blah
 *
 * @goal validate-security
 * @phase package
 * @requiresDependencyResolution compile+runtime
 */
public class SecurityValidationMojo extends AbstractMojo { ... }

From http://maven.apache.org/developers/mojo-api-specification.html

Если эта аннотация присутствует, но область не указана,область по умолчанию для времени выполнения.Если аннотация вообще отсутствует, моджо не должен делать никаких предположений об артефактах, связанных с проектом Maven.

...