Maven сайт плагин для развертывания снимков и выпусков отдельно? - PullRequest
2 голосов
/ 08 августа 2011

Я бы хотел по-разному развернуть сайт для иерархии проектов Maven для снимков и выпусков (т. Е. http://example.org для выпусков и http://dev.example.org для снимков) и сохранить иерархию проекта (родители, дети). , модули) исправить с соответствующими ссылками.

Моя попытка состояла в том, чтобы назначить свойства для хранения «текущей» информации о сайте, а также свойства для хранения каждого возможного типа сайта (т. Е. Dev, стабильный и т. Д.). Я бы тогда использовал профиль для переключения информации сайта во время релиза. Ниже приведен пример того, что я имею в виду.

Фрагмент родительского POM:

<project>
...

    <url>http://${site.host}/</url>

    <properties>
        <site.host.stable>example.org</site.host.stable>
        <site.host.stable.desc>PARENT-STABLE</site.host.stable.desc>

        <site.host.dev>dev.example.org</site.host.dev>
        <site.host.dev.desc>PARENT-DEV</site.host.dev.desc>

        <site.host>${site.host.dev}</site.host>
        <site.host.other>${site.host.stable}</site.host.other>
        <site.host.other.desc>${site.host.stable.desc}</site.host.other.desc>
    </properties>

    <distributionManagement>
        <site>
            <id>site-deploy-id</id>
            <url>.../var/www/${site.host}</url>
        </site>
    </distributionManagement>

    <profiles>
        <profile>
            <id>example-release</id>
            <properties>
                <site.host>${site.host.stable}</site.host>
                <site.host.other>${site.host.dev}</site.host.other>
                <site.host.other.desc>${site.host.dev.desc}</site.host.other.desc>
            </properties>
        </profile>
    </profiles>

...
</project>

Пример родительского дескриптора сайта:

<project>
    <body>
        <links>
            <item name="${site.host.other.desc}" href="http://${site.host.other}" />
        </links>
    </body>
</project>

Пример дескриптора дочернего сайта:

<project>
    <body>
        <menu ref="parent"/>
    </body>
</project>

Эта часть управления распространением прекрасно работает и развертывает файлы, как я и ожидал (в соответствующий каталог на целевой машине на основе активного профиля).

Для фактической части сайта:

С версией 2.2 плагина сайта это прекрасно работает для родительского сайта, но все сайты-потомки возвращаются к снимку или версии "dev", даже когда указанный профиль выпуска активен. В версии 3.0 плагина сайта печатается следующее сообщение и (как указано) родительское меню не создается. Раздел ссылок действует как версия 2.2.

[WARNING] Unable to find a URL to the parent project. The parent menu will NOT be added.

Используя плагин properties-maven-code из codehaus, я вижу, что свойства профиля применяются правильно, но плагин сайта, похоже, игнорирует это.

Есть ли лучший способ выполнить то, что я пытаюсь сделать? Это ошибка или я где-то ошибся?

...