Почему муравей использует maven-ant-tasks,artifact:mvn скачивает jar зависимостей так медленно

Смотри фото, у меня есть баночка с именем "brandstore-repository.jar"

В моем локальном репозитории я его удаляю.

И артефакт:mvn загрузит его на частный сервер (10.8.12.100)

Когда я использую cmd, используйте команду "mvn install", загружая ее очень быстро!

Но я использую "artifact:mvn" в ant building.xml, я чувствую себя относительно медленно, нужно ждать около 10+ секунд на каждую загрузку!!

Мой файл setting.xml, который в "${user.home}/. M2", так прост

<settings 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/settings-1.0.0.xsd">

    <localRepository>D:\FeiLong Soft\Essential\Development\repository</localRepository>

    <profiles>
        <profile>
            <id>profile-baozun</id>
            <repositories>
                <repository>
                    <id>public</id>
                    <url>http://10.8.12.100/nexus/content/groups/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>profile-baozun</activeProfile>
    </activeProfiles>
</settings>

В моей командной строке cmd я использую вместо "mvn clean install"

E:\Workspaces\baozun\converseplatform\converse-repo>mvn clean install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building converse-repo
[INFO]    task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting directory E:\Workspaces\baozun\converseplatform\converse-repo\target
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 7 resources
Downloading: http://10.8.12.100/nexus/content/groups/public/com/jumbo/brandstore/brandstore-repository/4.0.0/brandstore-repository-4.0.0.pom
1K downloaded  (brandstore-repository-4.0.0.pom)
Downloading: http://10.8.12.100/nexus/content/groups/public/com/jumbo/brandstore/brandstore/4.0.0/brandstore-4.0.0.pom
17K downloaded  (brandstore-4.0.0.pom)
Downloading: http://10.8.12.100/nexus/content/groups/public/com/jumbo/brandstore/brandstore-repository/4.0.0/brandstore-repository-4.0.0.jar
913K downloaded  (brandstore-repository-4.0.0.jar)
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 87 source files to E:\Workspaces\baozun\converseplatform\converse-repo\target\classes
[INFO] [native2ascii:native2ascii {execution: native2ascii}]
[INFO] Includes: [**/*.properties]
[INFO] Excludes: []
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 20 resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Compiling 12 source files to E:\Workspaces\baozun\converseplatform\converse-repo\target\test-classes
[INFO] [surefire:test {execution: default-test}]
[INFO] Tests are skipped.
[INFO] [jar:jar {execution: default-jar}]
[INFO] Building jar: E:\Workspaces\baozun\converseplatform\converse-repo\target\converse-repo-4.0.0.jar
[INFO] [install:install {execution: default-install}]
[INFO] Installing E:\Workspaces\baozun\converseplatform\converse-repo\target\converse-repo-4.0.0.jar to D:\FeiLong Soft\Essential\Development\repository\com\jum
bo\converse\converse-repo\4.0.0\converse-repo-4.0.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5 seconds
[INFO] Finished at: Wed Nov 28 11:03:17 CST 2012
[INFO] Final Memory: 39M/94M
[INFO] ------------------------------------------------------------------------
E:\Workspaces\baozun\converseplatform\converse-repo>

очень быстро

Я вижу, я использую только артефакт: зависимости, также можно скачать JAR зависимости, и быстрее

<target name="maven-test">
    <artifact:pom id="feilongMaven" file="pom.xml" />

    <artifact:dependencies filesetId="feilong.maven.dependencies.fileset" pathid="feilong.maven.dependencies.runtime" useScope="runtime">
        <pom refid="feilongMaven" />
    </artifact:dependencies>
</target>

результат:

maven-test:
[artifact:dependencies] Downloading: com/jumbo/brandstore/brandstore-repository/4.0.0/brandstore-repository-4.0.0.pom from repository public at http://10.8.12.100/nexus/content/groups/public
[artifact:dependencies] Transferring 2K from public
[artifact:dependencies] Downloading: com/jumbo/brandstore/brandstore/4.0.0/brandstore-4.0.0.pom from repository public at http://10.8.12.100/nexus/content/groups/public
[artifact:dependencies] Transferring 18K from public
[artifact:dependencies] Downloading: com/jumbo/brandstore/brandstore-repository/4.0.0/brandstore-repository-4.0.0.jar from repository public at http://10.8.12.100/nexus/content/groups/public
[artifact:dependencies] Transferring 914K from public
BUILD SUCCESSFUL
Total time: 1 second

2 ответа

Решение

Без подробностей, таких как ваш файл settings.xml и точные командные строки, я могу только догадываться, но одна из возможных причин заключается в том, что в этих случаях вы используете другую инфраструктуру.

То есть, например:

  • при вызове Maven используется прокси вашей компании (нексус или что-то еще)
  • при вызове Ant используется какой-либо другой прокси (или ни одного), что приводит к более медленной передаче

Убедитесь, что вы всегда используете одно и то же settings.xml плюс, что у вас есть <mirrors> в этом, и это должно помочь вам сделать ваши пути передачи последовательными.

У меня была такая же проблема с медленной загрузкой артефактов. Я использовал maven-ant-tasks-2.1.3.jar. Я предполагаю, что ваш "артефакт:mvn" связан с maven-ant-tasks. Возможно, это не то, что вы ищете, но я решил проблему, изменив артефакт:mvn на exec:

<exec executable="C:/apache-maven-3.0.3/bin/mvn.bat" dir="my-project">
     <arg value="clean" />
     <arg value="install" />
</exec>
Другие вопросы по тегам