2011-02-15 4 views
2

내 프로젝트 용 일반 부모 pom 파일을 작성 중입니다.일반 pom 파일에 어떤 리포지토리를 넣습니까?

그 파일에서 대부분의 종속성을 하위 프로젝트 (Jboss, Spring 등)에서 사용할 수 있도록 가장 일반적인 Maven 저장소 목록을 갖고 싶습니다.

<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>org.courtine</groupId> 
    <artifactId>parent</artifactId> 
    <packaging>pom</packaging> 
    <name>Parent</name> 
    <version>1.0</version> 
    <description>Common repositories</description> 
    <repositories> 
     <repository> 
      <id>javanet</id> 
      <name>Repository for Maven2</name> 
      <url>http://download.java.net/maven/2</url> 
     </repository> 
     <repository> 
      <id>google</id> 
      <name>Google repository for Maven2</name> 
      <url>https://oss.sonatype.org/content/repositories/google-releases/</url> 
     </repository> 
     <repository> 
      <id>jboss</id> 
      <name>JBoss repository for Maven2</name> 
      <url>http://repository.jboss.org/maven2/</url> 
     </repository> 
     <repository> 
      <id>com.springsource.repository.bundles.release</id> 
      <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name> 
      <url>http://repository.springsource.com/maven/bundles/release</url> 
     </repository> 
     <repository> 
      <id>com.springsource.repository.bundles.external</id> 
      <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name> 
      <url>http://repository.springsource.com/maven/bundles/external</url> 
     </repository> 
     <repository> 
      <id>com.springsource.repository.libraries.release</id> 
      <name>SpringSource Enterprise Bundle Repository - SpringSource Library Releases</name> 
      <url>http://repository.springsource.com/maven/libraries/release</url> 
     </repository> 
     <repository> 
      <id>com.springsource.repository.libraries.external</id> 
      <name>SpringSource Enterprise Bundle Repository - External Library Releases</name> 
      <url>http://repository.springsource.com/maven/libraries/external</url> 
     </repository> 
    </repositories> 
</project> 
  1. 공통 저장소에게 좋은 아이디어를 나열 같은 일반적인 파일 : 여기에

    이 현재의 치어입니까?
  2. 일반적인 일반 Maven 저장소에 이러한 일반 POM 파일을 넣을 것을 알고 있습니까?

답변

3

리포지토리를 pom에 넣는 것은 좋지 않습니다. Nexus, Artifactory 또는 Archiva과 같은 저장소 관리자를 사용하는 것이 더 좋습니다. 그런 종류의 pom에서는 적절한 리비전 (pluginManagement) 또는 의존성 (dependencyManagement)과 함께 기본 플러그인과 같은 것을 넣어야합니다.

this에 대한 설명을 찾아보십시오. 이것을 설치하는 방법 here을보십시오.

+0

개인 Nexus 저장소도 사용합니다. 이전에는 논문을 다시 작성했습니다. settings.xml의 위치는이 파일이 없으면 이식 할 수 없습니다. 리포지토리를 부모 pom에두면 프로젝트를 이식 할 수 있습니다. 참고 : 부모 파일에는 공통된 종속성 및 플러그인을 넣지 만 현재의 질문은 아닙니다. –

+0

"부모 pom에 리포지토리를 두는 것은 내 프로젝트를 이식 가능하게 만든다"에 대한 설명이 완전히 사실이 아닙니다. 환경에서 작동하지 않으면 프로젝트가 발생합니다. 원인은 실패 할 것이므로 프록시를 통해서만 외부로 액세스 할 수 있습니다 ... 그래서 부모 pom을 사용하는 모든 pom을 변경해야합니다. 그래서 settings.xml (미러) + repo 관리자를 통한 설정은 생명을 단순화합니다 ... – khmarbaise

3

내가하고 싶은 일을하는 또 다른 옵션이 있습니다. settings.xml의 프로파일을 사용하여 모든 저장소를 참조 할 수 있습니다 (nexus/archiva가 수행함). 나는 그의 것에 관하여 무언가를 나의 site에 붙였다.

<profile> 
    <id>my-repository</id> 
    <activation> 
    <!-- here we did not activat this profile by default --> 
      <activeByDefault>false</activeByDefault> 
    </activation> 
    <repositories> 
    <!-- list of standard repository --> 
    <repository> 
     <id>javanet</id> 
     <name>Repository for Maven2</name> 
     <url>http://download.java.net/maven/2</url> 
    </repository> 
    <repository> 
     <id>google</id> 
     <name>Google repository for Maven2</name> 
     <url>https://oss.sonatype.org/content/repositories/google-releases/</url> 
    </repository> 
    <repository> 
     <id>jboss</id> 
     <name>JBoss repository for Maven2</name> 
     <url>http://repository.jboss.org/maven2/</url> 
    </repository> 
    <repository> 
     <id>com.springsource.repository.bundles.release</id> 
     <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name> 
     <url>http://repository.springsource.com/maven/bundles/release</url> 
    </repository> 
    <repository> 
     <id>com.springsource.repository.bundles.external</id> 
     <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name> 
     <url>http://repository.springsource.com/maven/bundles/external</url> 
    </repository> 
    <repository> 
     <id>com.springsource.repository.libraries.release</id> 
     <name>SpringSource Enterprise Bundle Repository - SpringSource Library Releases</name> 
     <url>http://repository.springsource.com/maven/libraries/release</url> 
    </repository> 
    <repository> 
     <id>com.springsource.repository.libraries.external</id> 
     <name>SpringSource Enterprise Bundle Repository - External Library Releases</name> 
     <url>http://repository.springsource.com/maven/libraries/external</url> 
    </repository> 
    <repository> 
     <id>intelligents-ia</id> 
     <name>Intelligents-ia Repository</name> 
     <url>http://intelligents-ia.com/maven2</url> 
    </repository> 
    </repositories> 
    </profile> 

그리고 당신은 명령 줄에서 -Pmy-repository을 추가하여 프로젝트를 빌드 할 수 있습니다 :

단순히 settings.xml이 추가

mvn -Pmy-repository clean install 

또는 TRUE를 설정하면 기본적으로이 프로필을 활성화 :

<activation> 
     <activeByDefault>true</activeByDefault> 
</activation> 
관련 문제