Maven местное зеркало

Я запускаю Artifactory JFrog локально, куда я загружаю артефакты по умолчанию libs-snapshot-local репозиторий. Также он настроен на использование JCenter в качестве удаленного хранилища.
Maven настроен со следующими settings.xml:

<settings>
    <mirrors>
        <mirror>
            <id>jcenter</id>
            <name>jcenter</name>
            <url>http://172.18.0.1:8081/artifactory/jcenter</url>
            <mirrorOf>*,!libs-snapshot-local</mirrorOf>
        </mirror>
        <mirror>
            <id>libs-snapshot-local</id>
            <name>libs-snapshot-local</name>
            <url>http://172.18.0.1:8081/artifactory/libs-snapshot-local</url>
            <mirrorOf>libs-snapshot-local</mirrorOf>
        </mirror>
    </mirrors>

    <profiles>
        <profile>
            <repositories>
                <repository>
                    <id>jcenter</id>
                    <name>jcenter</name>
                    <url>http://172.18.0.1:8081/artifactory/jcenter</url>
                    <snapshots><enabled>false</enabled></snapshots>
                </repository>
                <repository>
                    <id>libs-snapshot-local</id>
                    <name>libs-snapshot-local</name>
                    <url>http://172.18.0.1:8081/artifactory/libs-snapshot-local</url>
                    <snapshots><enabled>true</enabled></snapshots>
                </repository>
            </repositories>

            <pluginRepositories>
                <pluginRepository>
                    <id>jcenter</id>
                    <name>jcenter</name>
                    <url>http://172.18.0.1:8081/artifactory/jcenter</url>
                    <snapshots><enabled>false</enabled></snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>libs-snapshot-local</id>
                    <name>libs-snapshot-local</name>
                    <url>http://172.18.0.1:8081/artifactory/libs-snapshot-local</url>
                    <snapshots><enabled>true</enabled></snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
</settings>

К сожалению, когда я запускаю процесс компиляции, Maven извлекает все из JCenter:

[INFO] Downloading: http://172.18.0.1:8081/artifactory/jcenter/org/apache/maven/plugins/maven-javadoc-plugin/2.10.4/maven-javadoc-plugin-2.10.4.jar

хотя этот артефакт, согласно Артефакту, находится внутри libs-snapshot-local,

Как получилось, что сначала не используются местные, и есть ли способ это исправить?

1 ответ

Мне не совсем понятно, чего вы пытаетесь достичь.

Обычно вы не устанавливаете два зеркала в файле settings.xml, а используете группу репозиториев (также называемую виртуальными репозиториями), которую вы определяете в своей артефакте. В этой группе вы можете установить порядок репозиториев так, чтобы ваш любимый репозиторий всегда задавался первым. Обычно вы помещаете сначала "локальные" репозитории, а затем "удаленные" (я использую Nexus, поэтому не могу точно сказать, как вы настроили это в Artifactory).

Тем не менее, если вы не последуете этому совету, это не сильно повредит, потому что Artifactory кэширует артефакты, которые уже были запрошены (и ваш Maven, конечно, также кэширует артефакты на вашем компьютере).

Другие вопросы по тегам