Не удается разрешить зависимости классов в проекте MAVEN с помощью Child / Modules (видно в Eclipse и mnv CLI)

1

У меня есть проект Eclipse Maven (родительский), в котором размещаются три Maven MODULES (это дети). Только у детей MODULES есть код под "src/main/java/..." (т.е. PARENT - это просто место для детей). Каждый MODULE не зависит друг от друга... Я просто настроил его таким образом, чтобы уменьшить беспорядок. знак равно

Теперь структура проекта не началась именно так. Изначально это был только один большой РОДИТЕЛЬ и никаких дочерних МОДУЛЕЙ; и все сработало нормально. Но затем я реорганизовал вещи в Eclipse (снова, чтобы уменьшить беспорядок), используя различные ходы/рефакторы, и все перестало работать.

Проблема. Мой исходный код теперь не может найти импортированные классы, поэтому мое решение о проблеме зависимостей где-то стало проблематичным. И проблема не только в Eclipse, но и при запуске, скажем, "mvn clean install" из CLI. Поэтому я подозреваю, что что-то не так с набором файлов POM, которые были результатом моих ходов/рефакторов.

Вот они (РОДИТЕЛЬ и один РЕБЕНОК). Я что-то упустил или что-то не так? Может быть, я тоже должен проверить что-то Eclipse? Обратите внимание, что я вложил несколько небольших встроенных вопросов в файлы POM ниже. :)

Файл PARENT pom.xml:

<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>
  <name>someName</name>
  <packaging>pom</packaging>

  <groupId>someParentGroupId</groupId>
  <artifactId>someParentArtifactId</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <properties>
     <jdk.version>1.7</jdk.version>

     <example-core.version>0.9.3</example-core.version>
     <!-- Intended to be used by some Child/Module.
          I hope PARENT/CHILD POM inheritance works that way? -->
  </properties>

  <dependencies>
     <!-- Dependencies are all in the Children/Modules -->
  </dependencies>


  <!-- ################### BUILD SETTINGS BEGIN ##################### -->
  <build>
     <pluginManagement>
        <plugins>
           <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.2</version>
              <configuration>
                 <source>${jdk.version}</source>
                 <target>${jdk.version}</target>
              </configuration>
           </plugin>
        </plugins>
     </pluginManagement>

     <plugins>
        <plugin> <!-- Used to create an UBER/FAT-JAR. -->
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-shade-plugin</artifactId>
           <version>2.3</version>
           <executions>
              <execution>
                 <phase>package</phase>
                 <goals>
                    <goal>shade</goal>
                 </goals>
              </execution>
           </executions>
           <configuration>
              <finalName>uber-${project.artifactId}-${project.version}</finalName>
           </configuration>
        </plugin>
     </plugins>
  </build>
  <!-- ################### BUILD SETTINGS END ####################### -->

  <modules>
     <module>childModule1</module>
     <module>childModule2</module>
     <module>chileModule3</module>
  </modules>

</project>

Пример CHILD pom.xml файл:

<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>

  <parent>
     <groupId>someParentGroupId</groupId>
     <artifactId>someParentArtifactId</artifactId>
     <version>0.0.1-SNAPSHOT</version>
  </parent>

  <artifactId>someChildArtifactId</artifactId>

  <!-- I noticed this missing in the Children/Module POM. Is that okay?
     <name>
     </name>
  -->

  <dependencies>
     <dependency>
        <groupId>org.example.somgGroupId</groupId>
        <artifactId>example-core</artifactId>
        <version>${example-core.version}</version>
     </dependency>
  </dependencies>

</project>

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

Заранее спасибо!

  • 0
    Кто-нибудь решил эту проблему? У меня сейчас такая же проблема
Теги:
maven
pom.xml
dependencies

1 ответ

0

имя не является обязательным атрибутом в pom.xml.

Я предполагаю, что someChildArtifactId приведен в качестве примера. Если нет, тот же идентификатор артефакта должен использоваться в родительском помпе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню