我按照从ant任务构建到本地maven存储库的post安装jar
我不知道是什么问题,但这根本不起作用。我不知道他们为什么用<arg value="mvn.bat"/>
而不是<arg value="mvn "/>
无论如何,我有以下xml文件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<target name="mvn">
<property environment="env" />
<property name="appname" value="hellojavaworld" />
<exec dir="." executable="cmd">
<arg value="/c"/>
<arg value="mvn "/>
<arg value="install:install-file"/>
<arg value="-Dfile=c:Documents and SettingsbbbworkspaceHelloServlethellojavaworldsrcmainjavahellojavaworld.binhellojavaworld.jar"/>
<arg value ="-DgroupId=${appname}"/>
<arg value="-DartifactId=${appname}"/>
<arg value="-Dversion=1.0"/>
<arg value="-Dpackaging=jar"/>
<arg value="-DgeneratePOM=true"/>
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
返回错误:
解决插件"install:install-file -D"的版本错误file=c' from repositories [local (c:Documents and Settingsbbb.m2repository), central (https://repo.maven.apache.org/maven2)]: Plugin not found in any Plugin repository
您的问题非常微妙,错误信息在这种情况下没有帮助。
问题来自maven-antrun-plugin
的以下配置:
<arg value="mvn "/>
应该是
<arg value="mvn"/>
末尾的空格被编码为%20
,这就把事情搞砸了。我注意到它是因为在运行配置时,我看到了以下日志:
[exec] Downloading: https://repo.maven.apache.org/maven2/%20install/install-file%20-Dfile=c/maven-metadata.xml
请注意,在这个日志中,Maven正在尝试寻找install-file%20
插件,这显然不工作。