2016-08-29 3 views
2

У меня есть следующая структура MavenMVN чистую установку не в состоянии решить класс

parent POM.XML 
- common/pom.xml 
- search/pom.xml 

Модуль поиска не может получить common классы модуля, когда я действительно MVN чистую установку на search модуля я package de.test.common does not exists. Я даже побежал mvn clean install на родительскую платформу, но не успел. common модуль строит отлично.

<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>de.test.search</groupId> 
    <artifactId>search</artifactId> 
    <packaging>jar</packaging> 
    <parent> 
     <groupId>de.test.platform</groupId> 
     <artifactId>platform</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <properties> 
     <app-name>search</app-name> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-elasticsearch</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>de.test.common</groupId> 
      <artifactId>common</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
     </dependency> 
    </dependencies> 
    <profiles> 
     <profile> 
      <id>searchdev</id> 
      <activation> 
       <activeByDefault>true</activeByDefault> 
      </activation> 
      <dependencies> 
       <dependency> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-devtools</artifactId> 
        <optional>true</optional> 
       </dependency> 
      </dependencies> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-maven-plugin</artifactId> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <configuration> 
          <skipTests>true</skipTests> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
      <properties> 
       <!-- log configuration --> 
       <logback.loglevel>DEBUG</logback.loglevel> 
      </properties> 
     </profile> 
     <profile> 
      <id>searchprod</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>com.heroku.sdk</groupId> 
         <artifactId>heroku-maven-plugin</artifactId> 
         <version>1.0.3</version> 
         <configuration> 
          <appName>${app-name}</appName> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-maven-plugin</artifactId> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <configuration> 
          <skipTests>true</skipTests> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
      <properties> 
       <!-- log configuration --> 
       <logback.loglevel>INFO</logback.loglevel> 
      </properties> 
     </profile> 
    </profiles> 
</project> 

общего П

<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>de.test.common</groupId> 
    <artifactId>common</artifactId> 
    <packaging>jar</packaging> 
    <parent> 
     <groupId>de.test.platform</groupId> 
     <artifactId>platform</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <properties> 
     <app-name>common</app-name> 
    </properties> 
    <profiles> 
     <profile> 
      <id>commondev</id> 
      <activation> 
       <activeByDefault>true</activeByDefault> 
      </activation> 
      <dependencies> 
       <dependency> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-devtools</artifactId> 
        <optional>true</optional> 
       </dependency> 
      </dependencies> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <configuration> 
          <skipTests>true</skipTests> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-maven-plugin</artifactId> 
        </plugin> 
       </plugins> 
      </build> 
      <properties> 
       <!-- log configuration --> 
       <logback.loglevel>DEBUG</logback.loglevel> 
      </properties> 
     </profile> 
     <profile> 
      <id>commonprod</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>com.heroku.sdk</groupId> 
         <artifactId>heroku-maven-plugin</artifactId> 
         <version>1.0.3</version> 
         <configuration> 
          <appName>${app-name}</appName> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <configuration> 
          <skipTests>true</skipTests> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-maven-plugin</artifactId> 
        </plugin> 
       </plugins> 
      </build> 
      <properties> 
       <!-- log configuration --> 
       <logback.loglevel>INFO</logback.loglevel> 
      </properties> 
     </profile> 
    </profiles> 
</project> 

enter image description here

Я думаю, что у меня есть такая же проблема упоминается здесь

maven compilation failure

Нашла проблему, но не причина

Я удалил следующую зависимость, и все в порядке

  <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 

после удаления плагина банки построено в другой структуре. Когда был загружен плагин весны, все содержимое содержалось в папке BOOT-INF, которая, по моему мнению, была причиной, но не уверен, хотя ... нужно мнение экспертов здесь.

+0

у вас установлен 'общего' модуля (в локальное хранилище - МВН чистой установки) – kuhajeyan

+0

да у меня есть фляга под \ .m2 \ репозиторий \ де \ тест \ Common \ Common \ 0.0.1-SNAPSHOT –

+0

вставьте грудь «общего» ... – OhadR

ответ

0

Найдено решение. Может быть, кто-то найдет это полезным.

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <classifier>exec</classifier> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
2

Самый простой способ решить это через так называемый проект реактора, где вы строите все зависимые модули с родительским помпом. Для этого добавьте следующий код в свой родительский POM:

<modules> 
    <module>common</module> 
    <module>search</module> 
</modules> 

Теперь построить родительский pPOM и вся ваша сборка должна работать. Кроме того, не используйте явные версии дочерних проектов, только наследуйте версию от родительского POM (я думаю, что вы там хороши). Если вы ссылаетесь на зависимости от того же проектного реактора, используйте версию ${project.version}.

+0

У меня уже есть фрагмент, определенный в родительском POM, а худшая часть - это родительская сборка pom, которая ломается в модуле поиска, приносящая в жертву то, что общего модуля там нет ... –

+0

обновил консоль реактора ... он всегда разбивается на проект, который импортирует общий модуль. –

+0

см. Обновленный. Весенний загрузочный плагин вызывал проблемы. Не знаю, почему. –

Смежные вопросы