【问题标题】:maven ant task variable issuemaven ant任务变量问题
【发布时间】:2014-06-11 22:08:16
【问题描述】:

我在我的 pom 文件中指定了一个 maven antrun 任务,它的工作是在编译阶段将一些文件从一个地方复制到另一个地方。但是 ant 无法识别 eclipse.home 变量?...我尝试使用其他变量,但我只是运行空白? maven-antrun-plugin 有哪些变量??

我的插件:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <phase>compile</phase>
            <configuration>
                <target>
                    <copy
                        todir="${eclipse.home}/workspace/location/src/main/webapp/realtime">
                        <fileset
                            dir="${eclipse.home}/workspace/location/src/main/webapp/realtime" />
                    </copy>
                    <copy
                        todir="${eclipse.home}/workspace/location/src/main/webapp/reports">
                        <fileset
                            dir="${eclipse.home}/workspace/location/src/main/webapp/reports" />
                    </copy>
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

谢谢

【问题讨论】:

    标签: java eclipse maven ant


    【解决方案1】:

    Eclipse 可以在编辑文件时识别此属性,因为它是在您转到 Window -> Preferences -> Ant -> Runtime 时在 Properties 选项卡中设置的。

    如果您从命令行或在 Eclipse 中运行 Maven 构建,但在“运行配置”的 JRE 选项卡中使用备用 JRE,Ant 将无法识别该属性。但是,如果您尝试使用工作区 JRE 运行 Maven 构建,它可能会识别它,因为该属性是在 Eclipse 工作区配置中定义的。

    最好的解决方案是始终在您的 POM 中定义您的属性,以便 antrun 插件始终识别它,即使您从命令行运行 Maven 构建。您可以在 pom.xml 中定义如下属性:

    <properties>
        <property.name>propertyValue</property.name>
    </properties>
    

    【讨论】:

    • 嗯,我明白了:)。但我注意到,当我定义一个属性 ${ECLIPSE_HOME} 时,maven 没有解决这个问题? eclipse home 的 Maven 变量是什么?。
    • 你在哪里定义了 ECLIPSE_HOME?
    • eclipse_home 是预定义的,但是当我将其包含为属性时,它无法识别它
    • 第一个 eclipse.home 或 ECLIPSE_HOME 很可能是安装 Eclipse 的位置,而不是项目工作区的位置。您确定工作区文件夹在 Eclipse 的安装文件夹中吗?其次,你为什么不使用 ${basedir} 指向你的 pom.xml 存在的路径。
    • 实际上我的工作空间在安装文件夹中。通常,当我在其他 maven 任务中使用 ECLIPSE_HOME 时,它可以很好地解决,但是对于这个特殊的任务,它只是不喜欢它... ${basedir} 不适用于这种情况,因为我正在将不同目录中的文件复制到pom所在的那个
    猜你喜欢
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2011-03-31
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多