2011-02-02 2 views
10

Я использую Apache Maven 3.0 Nexus Open Source Edition, Версия: 1.8.0.1Maven-metadata.xml не обновляется при развертывании связующей

это часть моей pom.xml

<plugin> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.5</version> 
</plugin> 
<plugin> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.1</version> 
</plugin> 

<distributionManagement> 
    <repository> 
    <id>nexus</id> 
    <name>nexus</name> 
    <url>http://myrepo/nexus/content/repositories/releases</url> 
    </repository> 
</distributionManagement> 

Это очень простой проект. когда я делаю

mvn release:prepare 
    mvn release:perform 

все работает отлично:

... 
[INFO] [INFO] --- maven-deploy-plugin:2.5:deploy (default-deploy) @ simple --- 
[INFO] Uploading: http://myrepo/nexus/content/repositories/releases/...pom 
[INFO] 4 KB 
[INFO] 5 KB 
[INFO]   
[INFO] Uploaded: http://myrepo/nexus/content/repositories/releases/....pom (5 KB at 1.0 KB/sec) 
[INFO] Downloading: http://myrepo/nexus/content/repositories/releases/.../maven-metadata.xml 
[INFO] 603 B 
[INFO]   
[INFO] Downloaded: http://myrepo/nexus/content/repositories/releases/.../maven-metadata.xml (603 B at 1.5 KB/sec) 
[INFO] Uploading: http://myrepo/nexus/content/repositories/releases/.../maven-metadata.xml 
[INFO] 634 B 
[INFO]   
[INFO] Uploaded: http://myrepo/nexus/content/repositories/.../maven-metadata.xml (634 B at 1.6 KB/sec) 

Теперь я скачать http://myrepo/nexus/content/repositories/.../maven-metadata.xml это выглядит следующим образом:

<metadata> 
<groupId>simple</groupId> 
<artifactId>simple</artifactId> 
<versioning> 
<latest>0.5.8</latest> 
<release>0.5.8</release> 
<versions> 
<version>0.5.9</version> 
<version>0.1</version> 
<version>0.3</version> 
<version>0.4</version> 
<version>0.5.1</version> 
<version>0.5.2</version> 
<version>0.5.3</version> 
<version>0.5.4</version> 
<version>0.5.5</version> 
<version>0.5.6</version> 
<version>0.5.7</version> 
<version>0.5.8</version> 
</versions> 
<lastUpdated>20110202190804</lastUpdated> 
</versioning> 
</metadata> 

моя последняя и выпустила версию не помечено как «последнее »и« release ».

Теперь я делаю «перестроить метаданные» внутри веб-интерфейса Nexus. Я снова загружаю метаданные. Теперь это выглядит

<metadata> 
    <groupId>simple</groupId> 
    <artifactId>simple</artifactId> 
    <versioning> 
    <latest>0.5.9</latest> 
    <release>0.5.9</release> 
    <versions> 
     <version>0.1</version> 
     <version>0.3</version> 
     <version>0.4</version> 
     <version>0.5.1</version> 
     <version>0.5.2</version> 
     <version>0.5.3</version> 

     <version>0.5.4</version> 
     <version>0.5.5</version> 
     <version>0.5.6</version> 
     <version>0.5.7</version> 
     <version>0.5.8</version> 
     <version>0.5.9</version> 

    </versions> 
    <lastUpdated>20110202191117</lastUpdated> 
    </versioning> 
</metadata> 

Это похоже на ошибку в связи или в maven? У кого-нибудь есть решение для этого?

+1

Я хотел бы предложить, чтобы обсудить в списках рассылки Maven. –

+6

Stackoverflow отлично подходит для таких вопросов. Основная причина: fpr Stackoverflow не подписывается на101 + списки рассылки. – Janning

+0

Да .. это похоже на ошибку. Вы проверили, есть ли в этом трекер проблема? –

ответ

6

Вы пытались установить updateReleaseInfo в true в конфигурации развертывания плагина?

<plugin> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.5</version> 
    <configuration> 
     <updateReleaseInfo>true</updateReleaseInfo> 
    </configuration> 
</plugin> 

Обратите внимание, я не пробовал, только что произошло, чтобы иметь развёртывать плагин документы открытым, когда я прочитал этот вопрос, и это кажется разумным.

От Maven docs:

updateReleaseInfo: 
Parameter used to update the metadata to make the artifact as release. 

Type: boolean 
Required: No 
Expression: ${updateReleaseInfo} 
Default: false 
+1

Я пробовал это, но не думаю, что это решение. На самом деле это просто заставит '' в 'maven-metadata.xml' установить любую версию, которую вы загружаете, даже если ti заканчивается на -SNAPSHOT. Он не обновляет ПОСЛЕДНИЕ вообще. –

+0

@ Xan, я считаю, что вы хотите использовать эту конфигурацию только в том случае, если вы действительно делаете выпуск, а не для создания снимков. Есть два способа сделать это; либо включить конфигурацию, показанную внутри '', которую вы активируете для релизов (например, 'mvn -Prelease release: выполнить ', где' -Prelease' активирует профиль с идентификатором «release». Или вы можете полностью исключить конфигурацию развертывания и использовать 'mvn -DupdateReleaseInfo = true release: выполнить', что делает то же самое. – user944849

+4

Я верю, что никто не говорит о выполнении релиза здесь, проблема в том, почему метаданные не обновляются?!? Я должен запускать задание каждые 30 секунд на Nexus до обновить его или я никогда не смогу получить последний файл. На самом деле я выполнил задание на непрерывную интеграцию в Hudson для развертывания LATEST успешно созданного артефакта. Проблема в том, что метаданные не имеют правильного набора LATEST. –

Смежные вопросы