Как получить версию, artifactId, пакет артефакта, построенного на Гудзоне - PullRequest
2 голосов
/ 26 апреля 2011

После создания артефакта я выполняю сценарий в качестве действия Post Build для развертывания артефакта.Поэтому я пытаюсь прочитать место, где он построен. Переменные окружения, доступные в Гудзоне, не дают мне достаточно информации об artifactId, Version, PackageType артефакта.

Так что кто-нибудь может мне помочь, какполучить значения для этих ....

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 26 апреля 2011

Возможно, я неправильно понял ваш вопрос, но есть ли причина не брать артефакт через файловую систему и переменную окружения WORKSPACE , ${WORKSPACE}/target/...

0 голосов
/ 27 апреля 2011

Вы можете использовать http://${BUILD_URL}/job/${JOBNAME}/${BUILDNUMBER}/api/xml?xpath=//artifact/fileName/text() и установить его в качестве переменной среды. Это работает, только если у вас есть 1 артефакт, если у вас есть больше, тогда вам нужно будет выполнить дополнительный анализ.

0 голосов
/ 26 апреля 2011

Все артефакты, созданные Maven, содержат записи META-INF, содержащие эту информацию. Прочитайте их как JarFile:

JarFile jf = new JarFile(path/to/artifact);
JarEntry propsEntry = jf.getJarEntry("META-INF/maven/pom.properties");
Properties props = new Properties();
props.load(jf.getInputStream(propsEntry));
// retrieve the values:
String groupId = props.get("groupId");
String artifactId = props.get("artifactId");
String version = props.get("version");
...