2

我正在尝试在 Windows 上使用 Ant 构建 Maven。

在签出 maven 的文件夹中运行 ant 时,我得到: build.xml:105: localRepository doesn't support the "path" attribute

带有 localRepository 的第 106 行是:<localRepository path="${maven.repo.local}" />

Ant 输出:构建文件:H:\maven-3.0-SNAPSHOT\build.xml

clean-bootstrap:

initTaskDefs:
 [echo] Building Apache Maven ...

isMavenHomeSet:

init:
 [echo] maven.home = C:\maven-3.0-SNAPSHOT
 [echo] maven.repo.local = C:\Users\XXX/.m2/repository
 [echo] distributionId = apache-maven
 [echo] distributionName = Apache Maven
 [echo] distributionDirectory = apache-maven

prompt-maven-home-exists:

pull:

BUILD FAILED
H:\maven-3.0-SNAPSHOT\build.xml:105: localRepository doesn't support the "path"
attribute

将斜杠更改为反斜杠maven.repo.local也无济于事。

4

2 回答 2

0

从 maven Central下载maven-ant-tasks jar并复制到$ANT_HOME/lib目录。

于 2014-05-21T10:18:32.537 回答
0

以下似乎对我们有用,尽管它可能在很大程度上取决于您的build.xml. 我正在使用 ant 版本 1.9.4 作为记录。

首先,我的以下条目$HOME/.m2/settings.xml似乎确实适用于蚂蚁。

<localRepository>/some/path/.m2/repository</localRepository> 

然而,这不是一个很好的解决方案,因为我们不想更改所有开发人员的配置文件。对于该build.xml文件,您需要以与定义artifact:remoteRepository行相同的方式定义本地存储库:

<artifact:remoteRepository id="central" url="..."/>
<!-- add the following line after the remoteRepository definitions -->
<artifact:localRepository id="local" path="/some/path/.m2/repository"/>

为了使存储库适用于我们所有的构建分支,我们使用环境变量,例如:

<artifact:localRepository id="local" path="${env.BUILD_HOME}/.m2/repository/"/> 

然后,您将使用与local执行远程存储库相同的方式来使用存储库:

 <remoteRepository refid="central"/>
 <!-- add the following line after the remoteRepository usages -->
 <localRepository refid="local"/>

我们必须将它添加到<artifact:pom<artifact:dependencies部分才能使其工作。YMMV。

于 2021-12-13T22:05:22.233 回答