【问题标题】:What repositories do you put in a generic pom file?您将哪些存储库放入通用 pom 文件中?
【发布时间】:2011-06-27 12:30:57
【问题描述】:

我正在为我的项目构建一个通用的父 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. 您知道要放入此类通用 pom 文件的其他常见公共 Maven 存储库吗?

【问题讨论】:

    标签: maven-2 repository pom.xml


    【解决方案1】:

    我有另一种选择来做你想做的事。您可以在 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>
    

    【讨论】:

      【解决方案2】:

      将存储库放入 pom 中不是一个好主意。最好使用 NexusArtifactoryArchiva 之类的存储库管理器。 在这种 pom 中,您应该将默认插件及其适当的修订版 (pluginManagement) 或应该使用的依赖项 (dependencyManagement) 放在一起。

      查看this 的解释。看看here如何设置。

      【讨论】:

        猜你喜欢
        • 2017-03-11
        • 2011-12-02
        • 1970-01-01
        • 2011-06-26
        • 2021-11-20
        • 1970-01-01
        • 2011-02-21
        • 2010-11-03
        • 2022-01-21
        相关资源
        最近更新 更多