您在通用pom文件中放置了哪些存储库?

时间:2011-02-15 10:42:58

标签: maven-2 repository pom.xml

我正在为我的项目构建一个通用的父pom文件。

在该文件中,我希望有一个最常见的Maven存储库列表,以便在子项目(Jboss,Spring等)中提供大多数依赖项。

这是当前的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>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文件中?

2 个答案:

答案 0 :(得分:3)

将存储库放入pom并不是一个好主意。最好使用像NexusArtifactoryArchiva这样的Repository Manager。 在这种类型的pom中,您应该使用默认插件以及适当的修订(pluginManagement)或应该使用的依赖项(dependencyManagement)。

查看this的解释。并查看here如何设置此内容。

答案 1 :(得分:3)

我还有其他选择可以做你想做的事。您可以在settings.xml中使用一个为您提供所有存储库的配置文件(如nexus / archiva所做的那样)。 我在site上发布了一些关于他的信息。

只需在settings.xml

中添加此内容即可
<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来构建项目:

mvn -Pmy-repository clean install

或者默认情况下通过设置true来激活此配置文件:

<activation>
       <activeByDefault>true</activeByDefault>
</activation>