maven-install-plugin: установка файлов jar субмодуля - PullRequest
1 голос
/ 27 января 2011

У меня есть проект агрегации с полдюжиной подмодулей. Сборки все работают, но когда я пытаюсь mvn install: install-file , я получаю только pom верхнего уровня. Я также пробовал mvn install: install Я получаю сообщение об ошибке "Невозможно переопределить параметр только для чтения: упаковка в цели: установка: установка".

У меня установлен плагин установки во всех подмодулях.

POM родителей:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-install-plugin</artifactId>
  <version>2.3.1</version>
  <configuration>
    <file>pom.xml</file>
    <groupId>com.pillardata</groupId>
    <artifactId>${project.artifactId}</artifactId>
    <version>${project.version}</version>
    <packaging>pom</packaging>
  </configuration>
</plugin>

Детский POM:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-install-plugin</artifactId>
  <version>2.3.1</version>     
  <configuration>

    <file>${project.build.directory}/${project.artifactId}-${project.version}.jar/</file>
    <groupId>com.pillardata</groupId>
    <artifactId>${project.artifactId}</artifactId>
    <version>${project.version}</version>
    <packaging>jar</packaging>
  </configuration>
</plugin>

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

Идеи

P.S., это maven 2.2.1.

Ответы [ 2 ]

1 голос
/ 27 января 2011

Я не уверен, что полностью понимаю ваш вопрос, поэтому вот он.

У вас есть проект с некоторыми модулями, например:

   A
   |
   +-- B
   |
   +-- C

и вам необходимо «установить» артефакт каждого модуля в локальный репозиторий maven. Тогда все, что вам нужно сделать, это запустить: mvn install

вы можете запустить это из любого (под) модуля, и все поддерево будет установлено. Если вы хотите установить их по отдельности (т.е. запретить вызов команды для каждого подмодуля), то вы можете использовать флаг -N: mvn install -N

Нет необходимости определять что-либо для установки артефактов для вашего проекта maven.

0 голосов
/ 27 января 2011

Вы должны унаследовать родительский pom в подпроектах и ​​указать дочерние элементы в родительском как «модули».Смотрите [POM] [1]

...