2012-03-22 4 views
3

У меня есть проект maven A, который использует jar-файлы другого проекта B в версии 1.0 моей команды. Версия 1.0 проекта B была отправлена ​​в местный репозиторий Maven.Не удается добавить исходный код в файл jar в Maven Dependency

Проблема в том, что проект B не включает исходный код. Таким образом, в проекте А, я правой кнопкой мыши на JAR B под зависимостями Maven в Package Explorer выберите Java Source Attachment и настройка пути Расположение в проекте B (в версии 1.1, я не имеют предыдущий источник версии больше) исходная папка (xxx/projectB/src/main/java/). Но, похоже, Maven не находит никакого исходного класса.

ответ

3

несколько способов решить эту проблему:

  1. Попросите группу B, чтобы использовать релиз плагин Maven. Плагин выпуска по умолчанию будет загружать исходники и артефакты javadoc при выпуске версии.
  2. Загрузить источник артефакта B самостоятельно. Поскольку вы, похоже, локально, загрузите его в репозиторий Maven. Затем вы сможете получить его.
  3. Установите их в свой локальный репозиторий (на вашем локальном компьютере), используя Maven Install Plugin. В документации даже показан пример того, как это сделать для источников артефакт. Даунсайд - это то, что он будет виден только вам, никому другому.

Поскольку вы используете m2eclipse, вы можете щелкнуть правой кнопкой мыши по объекту, а затем выберите Maven> Загрузка Источники.

+0

Спасибо. Похоже, что для Maven Dependency нет трюка. Я должен попросить кого-нибудь повторно загрузить B с источниками в maven. – bnguyen82

+0

Я добавил другое (локальное) решение, которое вы можете сделать самостоятельно (Maven Install Plugin). – nwinkler

+0

Спасибо за добрый ответ. – bnguyen82

1

добавить на B ПОМ (я думаю, что один из них должен работать):

<build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-dependency-plugin</artifactId> 
         <executions> 
          <execution> 
           <id>install</id> 
           <phase>install</phase> 
           <goals> 
            <goal>sources</goal> 
           </goals> 
          </execution> 
         </executions> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-source-plugin</artifactId> 
         <executions> 
          <execution> 
           <id>attach-sources</id> 
           <goals> 
            <goal>jar</goal> 
           </goals> 
          </execution> 
         </executions> 
        </plugin> 
       </plugins> 
      </build> 
+0

Не могу. Потому что проект B не находится в моей базе кода. Есть ли более элегантный способ? – bnguyen82

+0

[java decompiler plugin for eclipse] (http://java.decompiler.free.fr/?q=jdeclipse) Возможно, не элегантный, но он работает –