【问题标题】:Which files to edit? Maven & archiva要编辑哪些文件? Maven和档案
【发布时间】:2014-03-24 15:52:56
【问题描述】:

在阅读完所有内容后,我根本无法得出结论,为了使用 maven 从我的档案存储库下载工件,必须在哪里以及为什么需要更改什么。

我在服务器上设置了档案,并试图运行一个简单的 maven 项目,该项目将在我的档案仓库中获取工件并下载它们。

我要更改哪些 settings.xml?服务器上的那个还是我的本地副本?

pom.xml 是否需要更改?

【问题讨论】:

    标签: maven archiva


    【解决方案1】:

    您本地的~/.m2/settings.xml 文件(或Windows 下的%USERPROFILE%\.m2\setting.xml)。在那里你可以设置:

    <mirrors>
        <mirror>
            <id>yourrepo-id</id>
            <name>yourrepo-name</name>
            <url>http://yourrepo/archiva</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
    </mirrors>
    

    或者,您可以添加一个&lt;profile/&gt;,即&lt;activeByDefault&gt;true&lt;/activeByDefault&gt;,然后在其中添加&lt;repositories&gt; / &lt;pluginRepositories&gt;

    <?xml version="1.0"?>
    <settings>
        <profiles>
            <profile>
                <id>add-repositories</id>
                <activation>
                    <!-- Make the profile active by default -->
                    <activeByDefault>true</activeByDefault>
                </activation>
                <repositories>
                    <repository>
                        <!-- Each repository should have and id -->
                        <id>snapshots</id>
                        <snapshots>
                            <!-- This repository contains snapshots and Maven should always check for the latest version -->
                            <enabled>true</enabled>
                            <updatePolicy>always</updatePolicy>
                        </snapshots>
                        <releases>
                            <!-- No releases are stored here: only snapshots -->
                            <enabled>false</enabled>
                        </releases>
                        <!-- The URL -->
                        <url>http://yourrepo/snashots</url>
                    </repository>
                    <repository>
                        <!-- For releases -->
                        <id>releases</id>
                        <snapshots>
                            <enabled>false</enabled>
                        </snapshots>
                        <releases>
                            <enabled>true</enabled>
                        </releases>
                        <url>http://yourrepo/releases</url>
                    </repository>
                </repositories>
                <pluginRepositories>
                    <pluginRepository>
                        <id>snapshots</id>
                        <snapshots>
                            <enabled>true</enabled>
                            <updatePolicy>always</updatePolicy>
                        </snapshots>
                        <releases>
                            <enabled>false</enabled>
                        </releases>
                        <!-- The URL -->
                        <url>http://yourrepo/snashots</url>
                    </pluginRepository>
                    <pluginRepository>
                        <!-- For releases -->
                        <id>releases</id>
                        <snapshots>
                            <enabled>false</enabled>
                        </snapshots>
                        <releases>
                            <enabled>true</enabled>
                        </releases>
                        <url>http://yourrepo/releases</url>
                    </pluginRepository>
                </pluginRepositories>
            </profile>
        </profiles>
        <!-- mirrors, servers and other sections -->
    </settings>
    

    或者,您可以更改 pom.xml 并添加相应的 &lt;repositories/&gt; 和/或 &lt;pluginRepositories/&gt; 部分。

    <project ...>
         <repositories>
             <repository>
                 <!-- Each repository should have and id -->
                 <id>snapshots</id>
                 <snapshots>
                      <!-- This repository contains snapshots and Maven should always check for the latest version -->
                      <enabled>true</enabled>
                      <updatePolicy>always</updatePolicy>
                 </snapshots>
                 <releases>
                      <!-- No releases are stored here: only snapshots -->
                      <enabled>false</enabled>
                 </releases>
                 <!-- The URL -->
                 <url>http://yourrepo/snashots</url>
             </repository>
             <repository>
                  <!-- For releases -->
                  <id>releases</id>
                  <snapshots>
                      <enabled>false</enabled>
                  </snapshots>
                  <releases>
                      <enabled>true</enabled>
                  </releases>
                  <url>http://yourrepo/releases</url>
             </repository>
         </repositories>
         <pluginRepositories>
             <pluginRepository>
                  <id>snapshots</id>
                  <snapshots>
                       <enabled>true</enabled>
                       <updatePolicy>always</updatePolicy>
                  </snapshots>
                  <releases>
                       <enabled>false</enabled>
                  </releases>
                  <!-- The URL -->
                  <url>http://yourrepo/snashots</url>
             </pluginRepository>
             <pluginRepository>
                  <!-- For releases -->
                  <id>releases</id>
                  <snapshots>
                      <enabled>false</enabled>
                  </snapshots>
                  <releases>
                      <enabled>true</enabled>
                  </releases>
                  <url>http://yourrepo/releases</url>
             </pluginRepository>
        </pluginRepositories>
    </project>
    

    【讨论】:

    • 为什么需要更换镜像?
    • 我的文件会被复制到我的本地仓库吗?
    • 我运行了一个简单的项目,但没有从我的仓库中下载任何东西...我只更改了我的本地设置 xml。
    • @Dee: 1) 镜像:如果你定义了一个 mirrorOf:*,那么对于你的 pom.xml 中的任何存储库 id,Maven 总是会首先用你的 mirrorOf 中的那个来覆盖它,如果可以的话如果没有在那里找到工件,它将回退到您的pom.xml 中定义的存储库,如果失败,它将尝试 Maven Central(作为最后的手段)。 2)什么文件? -- 工件总是下载到您的本地存储库。我假设你已经解决了 3)?
    • 我是。我误解了 pom 及其依赖项是如何工作的,所以我现在一切都很好。感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 2013-05-10
    • 1970-01-01
    • 2011-03-17
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多