2016-03-17 4 views
0

У меня есть проект (A), который использует библиотеку I класса (B), которую мы разработали для моей команды.Как добавить проект и его зависимость с помощью Maven?

Библиотека классов (B) импортирует проект searchbox-io.Jest для доступа к моему ElasticSearch Engine и выполняет некоторую обработку. Проект (A) реализует службу Restful для пользовательского интерфейса.

Это POM В, библиотека классов:

<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>br.org.b</groupId> 
    <artifactId>b-project</artifactId> 
    <version>0.1.11</version> 
    <packaging>jar</packaging> 
    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.3</version>    
      </plugin> 
     </plugins> 
     <extensions> 
      <extension> 
       <groupId>org.kuali.maven.wagons</groupId> 
       <artifactId>maven-s3-wagon</artifactId> 
       <version>1.2.1</version> 
      </extension> 
     </extensions> 
    </build> 
    <dependencies>  
     <dependency> 
      <groupId>io.searchbox</groupId> 
      <artifactId>jest</artifactId> 
      <version>2.0.0</version> 
     </dependency>  
    </dependencies> 
</project> 

Это POM проекта А:

<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>MachineAPI</groupId> 
    <artifactId>MachineAPI</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.3</version> 
      </plugin> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.6</version> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>br.org.b</groupId> 
      <artifactId>b-project</artifactId> 
      <version>0.1.11</version>   
     </dependency> 
    </dependencies> 
</project> 

Проблема:

Однако, когда я пытаюсь выполнить Проект А, он не находит r выбор в поисковик-io.Jest. Моя проблема заключается в том, что я должен сделать проект A импортировать те же ссылки, что и библиотека классов, поэтому я могу использовать методы ElasticSearch. Как я могу это решить?

Благодаря

+0

Заголовок вашего сообщения не имеет никакого отношения к вопросу вашего сообщения. Пожелайте уточнить свою проблему? – aribeiro

+0

Почему бы и нет? Моя проблема заключается в том, что я должен сделать проект A импортировать те же ссылки, что и библиотека классов. –

ответ

0

Если оба проекта зависят от того же пакета он должен быть четко перечислены на обоих проектов зависимостей. Не рассчитывайте на переходные зависимости.

Если оба проекта разделяют несколько зависимостей, вместо перечисления всех на каждом POM вы можете создать «родительский» POM со всеми общими зависимостями и сделать его родительским POM обоих проектов.

+0

Хорошо, что решила проблему. Теперь мне нужно реализовать родительский POM. Я также изучу модули maven. http://books.sonatype.com/mvnex-book/reference/multimodule.html –

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