Почему муравей использует 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>