Ошибка активации файла профиля Maven

У меня есть родительский pom, который определяет профили, которые должны быть активированы, когда определенная папка существует:

<groupId>common</groupId>
<artifactId>common-build</artifactId>

<profiles>
    <profile>
        <id>dependency-profile-ejb</id>
        <activation>
            <file>
                <exists>${basedir}/src/profile/dependency-ejb/</exists>
            </file>
        </activation>
        <dependencies>[...]</dependencies>
    </profile>
    <profile>
        <id>dependency-profile-jsf</id>
        <activation>
            <file>
                <exists>${basedir}/src/profile/dependency-jsf/</exists>
            </file>
        </activation>
        <dependencies>[...]</dependencies>
    </profile>
</profiles>

У меня есть проект Maven с несколькими подмодулями:

<parent>
    <groupId>common</groupId>
    <artifactId>common-build</artifactId>
</parent>

<groupId>project/groupId>
<artifactId>project-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>

<modules>
    <module>project-child-one<module>
</modules>

В дочернем проекте я просто определяю родительскую зависимость:

<parent>
    <groupId>project</groupId>
    <artifactId>project-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

<artifactId>project-child-one</artifactId>

и в этом дочернем проекте я определил папку src/profile/dependency-ejb,

Если я запускаю сборку проектов в Eclipse, все работает как положено. Затем я установил проект в jenkins, но сборка не удалась. Если я оформить заказ project-parent в чистый каталог и попробуйте запустить сборку maven, сборка тоже не удалась.

Почему сборка выполняется в затмении, а не в командной строке? Почему определение профиля в родительском помете common-build не соблюдается?

1 ответ

Решение

После некоторых дальнейших испытаний я нашел решение. Сборка не удалась, потому что папки для активации профиля отсутствовали. Я добавил проект в git и забыл, что git не фиксирует / отправляет пустые папки.

Решение состоит в том, чтобы добавить пустой .gitkeep в папках, чтобы заставить git зафиксировать / нажать их.

Другие вопросы по тегам