Maven - 为什么maven除了jar文件外不会下载依赖项pom
问题描述:
我有一个Maven项目。我的一个依赖是一个zip文件。 Maven将此zip文件下载到本地存储库,但pom文件也不存在。我如何指示Maven下载pom文件?我的依赖类型是zip。Maven - 为什么maven除了jar文件外不会下载依赖项pom
pom文件存在于远程存储库中。 的POM文件:
<modelVersion>4.0.0</modelVersion>
<groupId>com.g.g</groupId>
<artifactId>art</artifactId>
<name>art</name>
<version>1-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>createZip.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
deploy命令:
call mvn clean install
call mvn deploy:deploy-file -Durl=url -Dpackaging=zip -Dfile="%~dp0\target\art-1-SNAPSHOT.zip" -DgroupId=com.g.g -DartifactId=art -Dversion=1-SNAPSHOT -DrepositoryId=... -DpomFile="pom.xml"
的依赖:
<dependency>
<groupId>com.g.g</groupId>
<artifactId>art</artifactId>
<version>1-SNAPSHOT</version>
<type>zip</type>
答
如果您想同时使用zip和pom,您可以将它们指定为依赖关系。
<dependency>
<groupId>com.g.g</groupId>
<artifactId>art</artifactId>
<version>1-SNAPSHOT</version>
<type>zip</type>
<dependency>
<groupId>com.g.g</groupId>
<artifactId>art</artifactId>
<version>1-SNAPSHOT</version>
<type>pom</type>
另一种方式来做到这一点,如果你不希望指定POM作为一个依赖:Maven的依赖插件有一个get mojo,允许名为文物的下载从远程仓库。
答
这可能是因为在pom.xml
的packaging
从不同包装的依赖ndency。虽然pom.xml的包装为pom
,但实际的依赖包装为zip
。
尝试将<packaging>
改为pom.xml
改为zip
,看看是否解决了问题。
如果pom文件在远程存储库中不可用maven不会为您创建默认pom。 – 2012-04-03 06:39:38
感谢您的回答。 pom文件存在于远程仓库中。 – user1116377 2012-04-03 06:52:07
你可以发布相关问题的POM的相关片段吗?另外发布你正在运行的命令 – Raghuram 2012-04-03 07:19:22