2016-08-11 10 views
0

Я использую Redhat, java 1.7, maven 3.2.5, jenkins 1.6, git version 2.0.5 и nexus-2.12.0-01Как настроить файл pom.xml использовать Nexus Repository Manager

Я создал локальный Nexus Repository для моего внутреннего развития. Теперь я пытаюсь создать проект maven, используя jenkins с Nexus Repository Manger Oss. Я могу построить свой проект без Nexus Repository Manger Oss.

Примечание: Я использую родителя pom, так как у меня есть субпроекты.

Пыльник - это шаги, которые я следовал.

  • Nexus Repository Manger Oss. она и работает
    здесь экран сортировки Nexus repository is up and running

  • установлен ojdbc5 банка в хранилище связующей

enter image description here

  • сделаны необходимые изменения в setting.xml файл .m2 папка

здесь содержание setting.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"> 

    <mirrors> 
     <mirror> 
     <!--This sends everything else to /public --> 
      <id>nexus</id> 
      <mirrorOf>*</mirrorOf> 
      <url>http://localhost:8081/nexus/content/groups/public</url> 
     </mirror> 
    </mirrors> 

    <activeProfiles> 
     <!--make the profile active all the time --> 
     <activeProfile>nexus</activeProfile> 
    </activeProfiles> 

    <profiles> 
     <profile> 
      <id>nexus</id> 
      <repositories> 
      <repository> 
      <id>central</id> 
      <url>http://maven.apache.org</url> 
      <releases><enabled>true</enabled></releases> 
      <snapshots><enabled>true</enabled></snapshots> 
      </repository> 
      </repositories> 

      <pluginRepositories> 
       <pluginRepository> 
        <id>central</id> 
        <url>http://maven.apache.org</url> 
        <releases><enabled>true</enabled></releases> 
        <snapshots><enabled>true</enabled></snapshots> 
       </pluginRepository> 
      </pluginRepositories> 
     </profile> 
    </profiles> 

    <servers> 
     <server> 
     <id>releases</id> 
     <username>deployment</username> 
     <password>deployment123</password> 
     </server> 
     <server> 
     <id>snapshots</id> 
     <username>deployment</username> 
     <password>deployment123</password> 
     </server> 
    </servers> 

</settings> 
  • Добавлен детали хранилища связующей в моем pom.xml

родителя pom.xml содержание

<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/maven-v4_0_0.xsd"> 
 
    <modelVersion>4.0.0</modelVersion> 
 
    <groupId>parent</groupId> 
 
    <artifactId>A</artifactId> 
 
    <packaging>pom</packaging> 
 
    <version>0.0.1-SNAPSHOT</version> 
 
    <name>Maven Webapp</name> 
 
    <!--url>http://maven.apache.org</url--> 
 

 
    <distributionManagement> 
 
    <repository> 
 
     <id>releases</id> 
 
     <url>http://localhost:8081/nexus/content/repositories/thirdparty/</url> 
 
    </repository> 
 
    <snapshotRepository> 
 
     <id>snapshots</id> 
 
     <url>http://localhost:8081/nexus/content/repositories/snapshots/</url> 
 
    </snapshotRepository> 
 
    </distributionManagement> 
 

 

 

 
    <dependencies> 
 
    <dependency> 
 
     <groupId>com.oracle</groupId> 
 
     <artifactId>ojdbc5</artifactId> 
 
     <version>11.2.0.1</version> 
 
    </dependency> 
 
    </dependencies> 
 

 
    <modules> 
 
    <module>subModule1</module> 
 
    <module>subModule2</module> 
 
    </modules> 
 
</project>

pom.xml subModule1 в

<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/maven-v4_0_0.xsd"> 
 
    <modelVersion>4.0.0</modelVersion> 
 
    <groupId>com.a</groupId> 
 
    <artifactId>a</artifactId> 
 
    <packaging>war</packaging> 
 
    <version>1.0-SNAPSHOT</version> 
 
    <name>Maven Webapp</name> 
 

 
    <distributionManagement> 
 
    <repository> 
 
     <id>releases</id> 
 
     <!-- CHANGE HERE by your team nexus server --> 
 
     <url>http://localhost:8081/nexus/content/repositories/thirdparty/</url> 
 
    </repository> 
 
    <snapshotRepository> 
 
     <id>snapshots</id> 
 
     <!-- CHANGE HERE by your team nexus server --> 
 
     <url>http://localhost:8081/nexus/content/repositories/snapshots/</url> 
 
    </snapshotRepository> 
 
    </distributionManagement> 
 

 

 
    <dependencies> 
 

 
    // dependecies are defined here 
 
    <dependencies>

В subModule1 и subModule2 я добавил раздел distributionManagement.

Но когда я создаю проект, вы получите следующую ошибку.

[ERROR] Не удалось выполнить задачу по проекту submodule1: Не удалось зависимости Разрешая для проекта submodule1: войны: 1,0-ПАНОРАМА: Отказ найти com.oracle:ojdbc5:jar:11.2.0.1 в https://repo.maven.apache.org/maven2 был кэшируются в локальном хранилище, разрешение будет не повторная попытка, пока интервал центрального обновления прошло или обновления принуждают -> [Помощь 1]

Я понимаю, ошибка вызывает потому com.oracle:ojdbc5:jar:11.2.0.1 jar-зависимость не устранена.

Но я удивлен, почему он не выбирает его из моего локального хранилища нексусов.

Я пропустил какую-либо конфигурацию, или я делаю это неправильно?

Как использовать локальный репозиторий для моих проектов?

ответ

0

В вашем файле settings.xml, обычно в вашем каталоге ~/.m2 /, необходимо указать местный Nexus. По умолчанию вы получаете только maven.

<profile> 
     <id>local</id> 
     <repositories> 
      <repository> 
       <id>nexus</id> 
       <name>libs-release</name> 
       <url>http://url to your local Nexus/artifactory/libs-release</url> 
      </repository> 
     </repositories> 
</profile> 

Вы можете добавить столько элементов репозитория, сколько хотите.

Убедитесь, что правильный профиль активен, в нижней части settings.xml

<activeProfiles> 
    <activeProfile>local</activeProfile> 
    </activeProfiles> 

Также вы останетесь с заглушкой в ​​файле ~/.m2/хранилище/COM/оракула ... папка. Я всегда делаю rm -r ~/.m2/repository/com/oracle, чтобы заставить его загружаться из удаленного репо.

0

Ваш файл settings.xml неправильно переопределяет конфигурацию центрального репозитория. Правильную настройку можно найти в documentation.

Имеются также example projects, у которых есть все готовое к работе, а eval guide содержит пошаговое руководство.