Наложения Maven и Eclipse - PullRequest
       51

Наложения Maven и Eclipse

1 голос
/ 07 ноября 2011

У меня есть 2 веб-проекта Maven A и B. B содержит некоторые общие части, и A зависит от B.

В p's.xml А у меня есть:

<dependencies>
    <dependency>
        <groupId>com.mygroup</groupId>
        <artifactId>B</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>war</type>
        <scope>compile</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
        </plugin>
    </plugins>
</build>

У меня 2 проблемы:

  1. При внесении некоторых изменений в B, если я запускаю сборку maven на A, я не вижу изменений в результирующем разобранном архиве.

  2. Попытка развернуть A из Eclipse не работает - содержимое B не включено в полученный архив войны / взрыва.

Спасибо за вашу помощь.

Ответы [ 2 ]

4 голосов
/ 07 ноября 2011

Усиливая точку зрения Андрея Боднареску, вы, возможно, не увидите изменений, которые вы внесли в проект-B при сборке проекта-A, потому что эти изменения недоступны в репозитории Maven.

Если проект B создается на той же машине, можете ли вы использовать mvn install для установки в локальный репозиторий?Если project-B создается из сборки на другой машине, используйте mvn deploy to deploy project-B в общем общем хранилище.В этом случае вы можете по-прежнему не принимать Project-B, если вы не используете SNAPSHOTted версионирование или не увеличиваете номер версии Project-B.

Я вижу, что B имеетвведите war.Что такое упаковка А?Это EAR?Если это так, использование maven-war-plugin с проектом А не поможет.

4 голосов
/ 07 ноября 2011

Что ж, если вы что-то изменили в B, вам придется переустановить его в локальное хранилище maven (mvn install) для других локальных проектов, которые имеют его в качестве зависимости для получения последних изменений.

При создании проекта maven лучше всего, если вы создаете его с помощью Maven (например, с такими командами, как mvn package) и не используете какой-либо другой инструмент для создания (например, Eclipse).Если вы хотите построить его в стиле а-ля Maven, но не выходя из своего Eclipse GUI, вы можете подключить плагин istall m2_eclipse из:

http://m2eclipse.sonatype.org/installing-m2eclipse.html

, который интегрирует Maven с Eclipse.Затем, когда вы щелкнете мышью по своему проекту в Eclipse, в разделе «Выполнить ...» у вас будет тот, который позволяет Maven создать его, перенаправив весь вывод консоли на окно консоли Eclipse.

И, наконец, в заключении, в такой конфигурации, как aboce, в идеале вы должны создать родительский проект Maven (упакованный как «pom»), который имеет дочерние проекты B и A (в этом порядке).Таким образом, если вы изменили материал в обоих проектах и ​​хотите, чтобы все было собрано с последними модификациями, вы можете просто выполнить установку maven на родительский pom, а Maven позаботится обо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...