Проблема с построением пути Eclipse maven в случае настраиваемого исходного каталога

Я преобразовал существующий проект Java в проект Maven, и Maven полностью скомпонован при использовании командной строки.

Когда я импортирую один и тот же проект в Eclipse и компилирую (щелкнув правой кнопкой мыши проект → работает как сборка Maven, он все равно компилируется без каких-либо проблем.

Однако я не могу видеть исходную папку. Когда я проверяю путь сборки, он дает предупреждение - запись пути сборки отсутствует.

Я не использую стандартный src/main/java поскольку у меня была уже существующая структура папок для проекта, которая не может быть изменена.

Здесь мой pom (обратите внимание на тег sourceDirectory):

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.mycom</groupId>

  <artifactId>maven</artifactId>

  <version>17.4</version>

  <name>maven</name>

  <properties>

    <projecrt.rootDir>../../java</projecrt.rootDir>

  </properties>

   <build>

        <finalName>re</finalName>

        <sourceDirectory>${projecrt.rootDir}</sourceDirectory>
         <plugin>

              <groupId>org.apache.maven.plugins</groupId>

              <artifactId>maven-jar-plugin</artifactId>

              <version>2.4</version>

              <configuration>

                <archive>                 

                  <manifestEntries>

                    <Build-Version>${buildversion}</Build-Version>

                  </manifestEntries>

                </archive>

             </configuration>

          </plugin>

        </plugins>

    </build>  

</project>

и вот моя структура каталогов:

Src/java
----maven/pom.xml
----com/mycom/<...> // application code

Ответ 1

Вы можете использовать этот build-helper-maven-plugin

И настройте его в своем файле pom таким образом

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>some directory</source>
                ...
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

и теперь, когда вы делаете mvn eclipse:eclipse пользовательские исходные папки будут добавлены в записи пути к классам в файле .project. Таким образом, вам не нужно выполнять какую-либо ручную настройку, ваша конфигурация просто будет построена во время выполнения. Вы можете сделать то же самое и для своих тестовых источников, если у вас есть тесты в специальной исходной папке. Надеюсь это поможет.

Ответ 2

Когда ваш проект Java импортируется в рабочее пространство Eclipse, вы можете указать фактическую папку src:

Нажмите "Открыть перспективу Java"> "Окно"> "Открыть перспективу"> "Другое...> Java, чтобы перейти на перспективу Java.

  • В группе компоновки проекта измените выбор на "Создать отдельные папки источника и вывода" и отредактируйте "Настроить значение по умолчанию"..., чтобы изменить имя исходной папки с "src" на "sources".

https://help.eclipse.org/neon/topic/org.eclipse.jdt.doc.user/gettingStarted/images/qs-OrganizeSources2.png

В настройках вашего проекта (project => property => java build path) вы также можете изменить/добавить папки src:

https://help.eclipse.org/neon/topic/org.eclipse.jdt.doc.user/gettingStarted/images/qs-OrganizeSources3.png