Используйте локальные зависимости и удаленные - PullRequest
0 голосов
/ 21 ноября 2019

У меня 2 проекта. один использует локальные зависимости.

Это контент settings.xml.

<localRepository>C:/sales/dependency/repository</localRepository>
<interactiveMode>false</interactiveMode>
<usePluginRegistry>true</usePluginRegistry>
<offline>true</offline>

Второй использует удаленный (мой собственный репозиторий Nexus).

<mirrors>
    <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>http://172.19.128.12:8090/repository/salesgroup</url>
    </mirror>
</mirrors>

Я собираюсь объединить эти два проекта. Я не могу загрузить свои локальные зависимости в Nexus. Итак, я должен использовать оба в моем проекте. В таком случае, как должен выглядеть файл settings.xml.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2019

Это то, что я рекомендую:

In ~/.m2/settings.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository -->
  <localRepository>C:/sales/dependency/repository</localRepository>

  ...

</settings>

Это сделает каталог C:/sales/dependency/repository локальным хранилищем на уровне пользователя для всех проектов maven.

Теперь, когда вы говорите, что объединяете два проекта, есть две возможности, как показано ниже:

  • У вас будет объединенная папка pom и src
  • У вас будет родительский pom и эти двапроекты будут его модулями.

В обоих случаях вы можете просто определить <repositories> в одном файле pom / parent pom вашего комбинированного проекта. Таким образом, этот / эти проекты будут использовать ваш внутренний репозиторий для разрешения зависимостей, которых нет в local репозитории.

<project>
  ...
  <repositories>
    <repository>
      <id>my-internal-site</id>
      <url>http://myserver/repo</url>
    </repository>
  </repositories>
  ...
</project>

Для получения более подробной информации вы можете прочитать здесь more!

0 голосов
/ 21 ноября 2019

Вместо этого, если вы добавляете свое хранилище Nexus в качестве зеркала, добавьте и вас, и локальное хранилище в качестве хранилища в профиле в ~/.m2/settings.xml, как показано ниже.

<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">

    ...    

    <profiles>
        <profile>
            <id>maven-repositories</id>
            <repositories>
                <repository>
                    <id>local</id>
                    <name>Local</name>
                    <url>file:///C:/sales/dependency/repository</url>
                </repository>
                <repository>
                    <id>nexus</id>
                    <name>Nexus Repository</name>
                    <url>http://172.19.128.12:8090/repository/salesgroup</url>
                    <layout>default</layout>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>never</updatePolicy>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>never</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>maven-repositories</activeProfile>
    </activeProfiles>
</settings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...