maven устанавливает и развертывает сторонние зависимости с помощью простой командной строки

У нас есть ряд сторонних зависимостей, которые нигде не размещены. Для каждого из них у нас есть файл jar, который мы хотели бы установить и / или развернуть в нашем репозитории. Некоторые из файлов jar имеют свои собственные зависимости, и мы также должны их объявить.

Мы создали файлы pom.xml для каждого файла jar, которые объявляют groupId, artifactId, зависимости и т. Д. Все эти файлы pom.xml имеют общий родительский pom, который объявляет некоторую общую информацию (например, и ).

Я хотел бы иметь возможность установить или развернуть эти зависимости с помощью чего-то столь же простого, как mvn install и mvn deploy (или, может быть, mvn install: install-file и mvn deploy: deploy-file ) и иметь все необходимые свойства для этих команд ( artifactId , repositoryId и т. д.) быть читать из файлов pom.xml.

Чтобы заставить это работать, по крайней мере для развертывания, я попытался поместить следующее в родительский pom:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-deploy-plugin</artifactId>
      <version>2.4</version>
      <configuration>
        <file>${jarfile}</file>
        <pomFile>pom.xml</pomFile>
        <repositoryId>our-id</repositoryId>
        <url>our-url</url>
      </configuration>
    </plugin>
  </plugins>
</build>

, а затем каждый из дочерних pom определил jarfile собственности. Это позволяет мне запустить mvn deploy: deploy-file для развертывания всех дочерних артефактов pom. Предположительно, я мог бы сделать что-то подобное, чтобы заставить работать mvn install: install-file .

Но при таком подходе я не могу освободить родительский pom (что я должен сделать, поскольку дочерние pom зависят от на нем), и если я попытаюсь mvn release: выполнить на родительском pom, я получаю такие ошибки, как:

Cannot override read-only parameter: pomFile

Мне кажется, что я ' Я, наверное, ошибаюсь. Все, что я действительно хочу сделать, это:

  • Поместить общий код для всех сторонних jar-файлов в один общий родительский pom
  • Написать дополнительный минимальный pom для каждого стороннего jar-файла
  • Уметь запускать что-то вроде mvn install или mvn deploy без необходимости указывать все эти сложные свойства командной строки

Как я могу это сделать лучше всего?

Изменить: Выше прояснили, что в идеале я хотелось бы иметь возможность запускать что-то столь же простое, как mvn install или mvn deploy , и не указывать свойства в командной строке.

6
задан Steve 10 January 2011 в 01:33
поделиться