Как правильно импортировать проекты maven для затмения? - программирование
Подтвердить что ты не робот

Как правильно импортировать проекты maven для затмения?

У меня есть сложный проект Maven, у которого есть родительская папка с родительским pom.xml и некоторые подпапки для подпроектов, каждая со своим pom.xml.

Когда я просматриваю родительскую папку из репозитория SVN "Как проекты maven", он правильно отображается в рабочей области как отдельный проект.

Но теперь я сделал проверку родительской папки из другой ветки проекта. Я хочу добавить эту родительскую папку таким же образом в текущую рабочую область. Поэтому я просто выбираю Import > Maven project, получаю те же диалоги, что и при проверке с помощью svn, Eclipse находит все файлы pom с надлежащей иерархией и просит меня указать другое имя для родительского проекта, поскольку существует одно имя alredy (trunc version of project), я дайте ему другое имя. Но после импорта я получаю только родительскую папку как проект maven в eclipse, все остальные подпроекты просты, расположены под родительским проектом в качестве подпапок.

Итак, как я могу импортировать такой проект? Я просто хочу, чтобы все подпроекты были созданы как проекты maven.

4b9b3361

Ответ 1

Eclipse не позволяет импортировать один проект более одного раза в вашем случае из соединительной линии и ветки. В этой статье показано, как можно обойти это ограничение с помощью настраиваемого профиля maven. В основном, шаги:

  • Добавьте в свой родительский профиль pom.xml

    следующий профиль:
    <profiles>
      <!-- Specific profile used to append a string to project name -->
      <profile>
        <id>append-to-project-name</id>
        <activation>
          <property>
            <name>append.to.project.name</name>
          </property>
        </activation>
        <build>
           <plugins>
            <plugin>
              <artifactId>maven-eclipse-plugin</artifactId>
              <configuration>
                <projectNameTemplate>
                  [artifactId]-${append.to.project.name}
                </projectNameTemplate>
              </configuration>
            </plugin>
          </plugins>
        </build>
      </profile>
    </profiles>
    
  • Прежде чем импортировать проект в Eclipse, пусть maven генерирует настройки проекта:

    mvn eclipse: eclipse -Dappend.to.project.name = [your-branch-name]

  • Импортируйте проект в Eclipse как существующий проект (а не проект maven).

Это должно решить проблему именования.


Как для импорта дочерних проектов: у меня также есть родительский проект maven с дочерними подпроектами и используйте плагин m2e для Ecplise. Когда я выбираю Import > Existing Maven Project, я могу проверить как родительский, так и дочерний. После импорта у меня есть как родительский проект, так и каждый ребенок импортирован независимо. Экраны:

project importimported projects

Итак, я надеюсь, что это в сочетании с решением для именования выше должно решить вашу проблему.

Ответ 2

Для импорта сложных (или даже любых) проектов Maven из SCM (будь то SVN, Git или любой другой SCM) я использую следующий подход:

Файл- > Импорт- > Проверить проекты Maven из SCM

Это лучше всего работает, если в SCM не были установлены определенные файлы IDE. Он будет импортировать все вложенные проекты или вы можете выбрать, какие проекты импортировать. Он полностью опирается на настройки Maven для определения характера создаваемого проекта, так что, предполагая, что файлы POM верны, вы завершаете все настроенное правильно.

Вам может потребоваться установить надстройки, чтобы m2eclipse мог получить доступ к SCM по вашему выбору.

Ответ 3

Я предполагаю, что может возникнуть проблема с рабочим пространством. Возможно, вы проверили проект в самой рабочей области (не уверенный в этом помилование). Что вы можете сделать, попробуйте проверить свой проект на другом диске и затем импортировать родительский проект. Вы снова увидите все POM, выровненные по иерархическому принципу, и я полагаю, вас не попросят ввести имя для родительского проекта, и это сделает трюк.

Ответ 4

Удалите проекты, которые вы проверили как проекты Maven, затем просто проверьте проект родителя (не как проект Maven), затем импортируйте дочерние модули как существующие проекты Maven. Убедитесь, что они указаны как дочерние модули в родительском POM.