2012-06-29 4 views
16

В настоящее время у меня возникает проблема с Maven 3, когда я пытаюсь создать сайт. Буду признателен вам за помощь в этом.Неразрешимый родительский POM: при создании сайта проекта Maven 3

МВН чистый сайт

.......... 
[INFO] Reactor Summary: 
[INFO] 
[INFO] Project A ......................................... SUCCESS [15.383s] 
[INFO] Project B ......................................... SUCCESS [2.232s] 
[INFO] My Site ........................................... FAILURE [0.105s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 24.769s 
[INFO] Finished at: Fri Jun 29 14:26:04 AMT 2012 
[INFO] Final Memory: 18M/150M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.1:site (default-site) on project site: SiteToolException: Unable to read local module-POM: 1 problem was encountered while building the effective model for my.com:projA:0.1-SNAPSHOT 
[ERROR] [FATAL] Non-resolvable parent POM: Could not find artifact my.com:parent-pom:pom:0.1-SNAPSHOT and 'parent.relativePath' points at no local POM @ line 12, column 13 
[ERROR] for project my.com:projA:0.1-SNAPSHOT 
............. 

Во-первых здесь конфигурация:

Apache Maven 3.0.4 (r1232337; 2012-01-17 12:44:56+0400) 
Java version: 1.7.0_04, vendor: Oracle Corporation 
Default locale: en_US, platform encoding: UTF-8 
OS name: "mac os x", version: "10.7.4", arch: "x86_64", family: "mac" 
Nexus repository: 2.0.6 

Родитель POM:

<modelVersion>4.0.0</modelVersion> 

<name>Parent POM</name> 
<groupId>my.com</groupId> 
<artifactId>parent-pom</artifactId> 
<version>0.1-SNAPSHOT</version> 
<packaging>pom</packaging> 

<build>       
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-site-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <reportPlugins> 
         <plugin> 
          <groupId>org.apache.maven.plugins</groupId> 
          <artifactId>maven-project-info-reports-plugin</artifactId> 
          <version>2.4</version> 
         </plugin>    
        </reportPlugins> 
       </configuration> 
      </plugin>    
     </plugins> 
    </pluginManagement>  
</build> 

Агрегирования Проект POM:

<modelVersion>4.0.0</modelVersion> 

<name>My Site</name> 
<groupId>my.com</groupId> 
<artifactId>site</artifactId> 
<version>0.1-SNAPSHOT</version> 
<packaging>pom</packaging> 

<parent> 
    <groupId>my.com</groupId> 
    <artifactId>parent-pom</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <relativePath/> 
</parent> 

<modules> 

    <module>projA</module> 
    <module>projB</module> 

</modules> 

П Проект A:

<modelVersion>4.0.0</modelVersion> 

<name>Project A</name> 
<groupId>my.com</groupId> 
<artifactId>projA</artifactId> 
<version>0.1-SNAPSHOT</version> 

<parent> 
    <groupId>my.com</groupId> 
    <artifactId>parent-pom</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <relativePath/>   
</parent> 

П Проект B:

4.0.0

<name>Project B</name> 
<groupId>my.com</groupId> 
<artifactId>projB</artifactId> 
<version>0.1-SNAPSHOT</version> 

<parent> 
    <groupId>my.com</groupId> 
    <artifactId>parent-pom</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <relativePath/>   
</parent> 

Вот структура папки, в которой я бегу «МВН чистый сайт»:

./pom.xml (aggregation project) 
./projA/pom.xml (Project A) 
./projB/pom.xml (Project B) 

родитель-ПОМ успешно развернут в хранилище NEXUS перед выполнением mvn clean site с помощью следующей команды mvn deploy -DaltDeploymentRepository=snapshots::default::http://MyServer:8081/nexus/content/repositories/snapshots

И, наконец, сама проблема:

Когда я запустил mvn clean site сразу после успешного развертывания сайта parent-pom. Если я удалю папку (с ее содержимым) «my» (она содержит родительский пом) из локального репозитория (~/.m2/repository), а затем попытайтесь построить сайт с помощью mvn clean site. Я получаю ошибку, описанную на начало. Фактически, Maven загружает родительский помп из NEXUS. Я сравнил загруженные файлы и файлы, которые были сгенерированы после развертывания, и поняли, что их мало, например maven-metadata-local.xml рядом с папкой «0.1-SNAPSHOT».

Итак, когда я пытаюсь запустить работу по созданию сайта у Jenkins, я получаю сообщение об ошибке, описанное выше, потому что родительский помп не развернут с машины, на которой работает Jenkins.

Как я могу решить эту проблему или что я сделал неправильно?

спасибо.

+0

Я бы удалил запись relativePath ваших модулей, потому что она пуста, поэтому ее не нужно. Можете ли вы улучшить изображение с помощью структуры папок где находится ваш родительский pom? И почему родительский pom и агрегат pom являются разными? – khmarbaise

+2

заставляет maven загружать родительский POM из репозитория, а не искать его в структуре. Если я удалю его maven показывает предупреждения, потому что начинает думать, что родитель находится в ../pom.xml, что неверно. Что касается агрегации и наследования. Вполне возможно, что у него есть разные родительские и агрегирующие POM. Вот ссылка: [Агрегация против наследования ] (http://maven.apache.org/pom.html#Inheritance_v) – tgrigoryan

+0

Я знаю, что возможно наличие разных агрегаторов и па но это не облегчает жизнь. – khmarbaise

ответ

2

Ваша проблема не в ваших файлах pom. Когда я построил ваш агрегированный pom, Maven загрузил обычно родительский pom из удаленного репо (после того, как я удалил из своего локального репо).

Попробуйте это:

mvn -U clean install site dependency:purge-local-repository 

Кроме того, вы могли бы сделать некоторые очистки:

  • удалить <relativePath/> все из них
  • удалить <version>0.1-SNAPSHOT</version> и <groupId>my.com</groupId> из projA и ProjB (они унаследованы от родителя)
4

Как указано в this answer, в плагине сайта есть a bug, который ищет только зависимости от того, что, по его мнению, является Maven central.

У меня такая же проблема в Maven 3.0.4 и плагине сайта 3.3. У меня также есть проблема, что он работает на моей машине разработки под управлением Windows 7, но не на CI-сервере, на котором работает Jenkins на Debian.

1

У меня такая же проблема ... работает на моем разработчике MacBook, но не работает на моем Jenkins, работающем на RHEL7 при запуске mvn site с использованием maven-site-plugin:3.7. Я не тестировал понижение плагина сайта.

Я нашел другое решение. Проблема в моем случае была maven-project-info-reports-plugin особенно цель dependencies. Если я пропущу цель с -Dmpir.skip=true, мой сайт get генерируется (без зависимостей :(отчет).

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