为什么我每次都“mvn jetty:run”,maven尝试下载一些依赖项(apache poi和ojdbc jars)?如何禁用此功能?
[INFO] Scanning for projects..
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO] ------------------------------------------------------------------------
[INFO] Building infolitReport
[INFO] task-segment: [jetty:run]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing jetty:run
Downloading: http://repository.springsource.com/maven/bundles/release/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/external/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/milestone/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/snapshot/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repo1.maven.org/maven2/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/release/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/external/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/milestone/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/snapshot/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repo1.maven.org/maven2/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
[INFO] [aspectj:compile {execution: default}]
答案 0 :(得分:4)
如章节3.5.5. Maven's Dependency Management中所述:
Maven中的依赖关系不仅仅是一个JAR文件;它是一个POM文件,反过来,可能会声明对其他工件的依赖。依赖关系的这些依赖关系称为传递依赖关系,并且它们可以通过Maven存储库存储的不仅仅是字节码来实现。它存储有关工件的元数据。
因此,当Maven下载JAR依赖项时,它不仅会下载JAR,还会下载POM文件。在这里,Maven尝试下载它们,但它们不存在(只存在jar文件)。因此,maven不会将它们写入本地存储库并在下次再次尝试。
这里有4个选项:
install:install-file
)。mvn
选项离线-o
,以减少痛苦。答案 1 :(得分:0)
你为什么要阻止它?你可以运行它而不下载依赖项?如果您仍想这样做,请查看
http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html
查看排除标记 p>
答案 2 :(得分:0)
基本上,在运行命令时第一次下载依赖项,但是某些依赖项可能需要比较它的版本并尝试在下次运行时为您获取最新的版本。
如果您不总是有互联网连接或只是想缩短构建时间,可以附加-o
参数,这意味着离线可以运行,例如mvn jetty:run -o
答案 3 :(得分:0)
Pascal Thivent的答案示例
在本地存储库中创建POM文件(例如使用
install:install-file
)
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=codec -Dversion=1.3 -Dpackaging=jar -Dfile=lib/commons-codec-1.3.jar -DgeneratePom=true
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=httpclient -Dversion=3.1 -Dpackaging=jar -Dfile=lib/commons-httpclient-3.1.jar -DgeneratePom=true
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=logging -Dversion=1.1 -Dpackaging=jar -Dfile=lib/commons-logging-1.1.jar -DgeneratePom=true