Как загрузить зависимость Uber JAR в определенную локальную папку / папку? - PullRequest
0 голосов
/ 30 сентября 2019

Используя Shade, я загружаю Uberjar в репозиторий:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.1</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
        <configuration>
          <shadedArtifactAttached>true</shadedArtifactAttached>
          <shadedClassifierName>myjar</shadedClassifierName>
        </configuration>
      </execution>
    </executions>
  </plugin>

Затем у меня есть другое приложение, которому нужен доступ к этой банке. Я планировал просто иметь pom в репозитории других приложений и иметь сценарии развертывания, вызывающие mvn install или что-то еще, чтобы загрузить uber jar локально. Я не уверен, как просто скачать Uber JAR.

Это POM создает blahblah-1.jar в целевой папке, когда я запускаю mvn install. Я хочу, чтобы он вытащил Uber JAR в определенный каталог. Как я могу сделать это в конфиге pom? Я не хочу передавать конкретные параметры в mvn - я хочу, чтобы конфиг был в pom, чтобы я мог просто выполнить что-то вроде mvn install, и оно сбрасывает зависимость uber jar в правильный каталог. Я хочу использовать pom для всех настроек, потому что это будет означать, что мой CI \ CD-сервер просто должен вызвать ту же команду для других приложений, подобных этой, и настройки будут в 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>derps</groupId>
  <artifactId>blahblah</artifactId>
  <version>1</version>

  <!-- Retrieve artifacts from internal repo -->
  <repositories>
    <repository>
      <id>myrepo</id>
      <name>my repo</name>
      <url>https://myrepo</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>com.mycompany.app</groupId>
      <artifactId>my-app</artifactId>
      <version>1.0-SNAPSHOT</version>
      <classifier>myjar</classifier>
    </dependency>
  </dependencies>

</project>

1 Ответ

1 голос
/ 30 сентября 2019

Вы можете использовать плагин зависимостей maven для копирования зависимости в определенную папку:

https://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...