Как вы получаете бинарную версию Maven из пользовательского Mojo?
Я имею в виду двоичную версию Maven, которая возвращается, когда вы обычно запускаете
mvn --version
из командной строки, которая возвращает вывод, как показано ниже,
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: /home/uvindra/Apps/java6/jdk1.6.0_45/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.11.0-15-generic", arch: "amd64", family: "unix"
Обратите внимание на версию maven 3.0.4. Какой лучший способ получить доступ к этому из пользовательского Maven Mojo в Java? Есть ли недвижимость для этого?
Я хочу запустить проверку текущей версии Maven, которая выполняет мой Mojo, спасибо
2 ответа
С помощью getApplicationVersion()
как упомянуто Хмарбайзом устарело, getMavenVersion()
является рекомендуемой функцией для использования. Вы должны включить maven-core 3.0.2 или выше в качестве зависимости, чтобы использовать RuntimeInformation
учебный класс.
вот полный пример использования,
Требуемая зависимость от пом
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.0.2</version>
</dependency>
Импорт пакетов
import org.apache.maven.rtinfo.RuntimeInformation;
использование
/**
*
* @component
*/
private RuntimeInformation runtime;
public void execute() {
String version = runtime.getMavenVersion();
getLog().info("Maven Version: " + version);
...
}
@khmarbaise, спасибо, что указал мне правильное направление
Вы можете получить информацию о текущей версии Maven, используя следующий фрагмент кода:
@Component
private RuntimeInformation runtime;
public void execute() {
ArtifactVersion version = runtime.getApplicationVersion();
getLog().info("Version: " + version);
...
}
runtime
также предлагает информацию о getBuildNumber()
, getIncrementalVersion()
, getMajorVersion()
, getMinorVersion()
а также getQualifier()
, Это должно соответствовать вашим потребностям.