Есть ли макет проекта, который удовлетворяет плагину релиза Mavens? - PullRequest
1 голос
/ 01 декабря 2011

У меня есть многомодульный проект, и я не могу выполнить релиз.

Я пробовал эти макеты:

svnroot/trunk/parent
              /module1
              /module2

и

svnroot/parent/trunk
svnroot/module1/trunk
svnroot/module2/trunk

После прочтения

* * 1010 http://ericmiles.wordpress.com/tag/flat-structure/ и http://ericmiles.wordpress.com/tag/release-plugin/

Я надеялся, что первый макет сработает, но в обоих случаях maven завершается с этой ошибкой:

[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).

Project ID: unknown

 Reason: Could not find the model file 'C:\myworkspace\parent\target\module1'. for project unknown
[INFO] ------------------------------------------------------------------------            

Кажется, что когда эта ошибка происходит, уже проделана определенная работа, все номера версий обновляются в poms.

Я обнаружил, что родительский модуль был извлечен из-под parent \ target \ checkout, и похоже, что плагин ожидает, что модули извлечены из-под target.

  • Я пропустил важную настройку?

  • Может кто-нибудь описать, как он заработал релиз mvn?

parent.pom имеет следующие настройки

    <groupId>company.project</groupId>
    <artifactId>parent</artifactId>
    <version>1.0.9-SNAPSHOT</version>
    <packaging>pom</packaging>

     <modules>
        <module>../module1</module>
        <module>../module2</module>
    </modules> 

    <scm>
        <connection>scm:svn:file:///SVNROOT/trunk/parent</connection>
        <url>file:///SVNROOT/trunk/parent</url>
    </scm>

     <dependency>
            <groupId>company.project</groupId>
            <artifactId>module1</artifactId>
            <version>1.0.9-SNAPSHOT</version>
     </dependency>

Пом модуль выглядит так

<parent>
    <artifactId>parent</artifactId>
    <groupId>company.project</groupId>
    <version>1.0.9-SNAPSHOT</version>
</parent>

<name>module1</name>
<artifactId>module1</artifactId>

<scm>
    <connection>scm:svn:file:///SVNROOT/trunk/module1</connection>
    <url>file:///SVNROOT/trunk/module1</url>
</scm>

Релиз вызывается

mvn -e -DcommitByProject=true -DautoVersionSubmodules=true  -Dresume=false release:prepare  release:perform

Maven версия 2.2.1

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Моя структура

/svnroot/trunk/parent
/svnroot/trunk/parent/module1
/svnroot/trunk/parent/module2

и т.д.. и у меня не было никаких проблем со сборкой или использованием релизного плагина. Я в настоящее время на 3.0.3, но я думаю он работал на 2.2.x. В любом случае он не соответствует ни одной из структур, которые вы указали в своем вопросе, и, возможно, стоит попробовать.

0 голосов
/ 01 декабря 2011

Edit: как я отметил ниже, это была проблема с плагином Eclipse - извините за путаницу

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

...