当前位置: 首页 > 面试题库 >

使用antcontrib 通过maven-antrun-plugin执行任务

慕弘深
2023-03-14
问题内容

我的maven java项目使用maven-antrun-plugin执行部署我的应用程序的deploy.xml
ant脚本。deploy.xml使用该<if>任务,这似乎是导致问题的原因。

[INFO]执行任务
[taskdef]无法从资源net / sf / antcontrib / antlib.xml加载定义。找不到。

部署:
[INFO] ---------------------------------------------

[错误]内置错误
[信息] --------------- --------------------------------------------------

[INFO]发生了Ant BuildException:执行此行时发生以下错误:
E:\ My_Workspace \ xxxxxx \ xxxxxx \ xxxxxxx \ deploy.xml:24:问题:无法创建任务或类型如果
原因:名称未定义。
行动:检查拼写。
行动:检查是否已声明任何自定义任务/类型。
操作:检查是否已执行任何 / 声明。 setdef>

这是我pom中的antrun插件配置;

<plugin>
    <inherited>false</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <id>remote-deploy</id>
            <phase>install</phase>
            <configuration>
                <tasks>
                    <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.plugin.classpath"/>

                        <property name="compile_classpath" refid="maven.compile.classpath" />
                        <property name="runtime_classpath" refid="maven.runtime.classpath" />
                        <property name="plugin_classpath" refid="maven.plugin.classpath" />

                        <echo message="compile classpath: ${compile_classpath}"/>
                        <echo message="runtime classpath: ${runtime_classpath}"/>
                        <echo message="plugin classpath: ${plugin_classpath}"/>

                        <ant antfile="${basedir}/deploy.xml">
                            <target name="deploy" />
                        </ant>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>ant-contrib</groupId>
            <artifactId>ant-contrib</artifactId>
            <version>1.0b3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.7.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-jsch</artifactId>
            <version>1.7.1</version>
        </dependency>
    </dependencies>
</plugin>

..这是我deploy.xml中的相关部分;

<target name="deploy" if="deploy">
    <if>    <!-- line 24 -->
        <and>

为什么我可以看到我的Maven回购交易,为什么ant-contrib/ant-contrib/1.0b3/ant- contrib-1.0b3.jar当我看着罐子里的东西时也看不到net/sf/antcontrib/antcontrib.properties任何问题。

当我检查的数值maven.compile.classpathmaven.compile.classpathmaven.compile.classpath我看不到任何引用antcontrib,这会是什么问题?当antcontrib被定义为依赖项时,为什么它们不出现?


问题答案:

好,我已经解决了。

将依赖项移出<build><plugin>标签,然后将其与其他项目依赖项放在一起似乎可以解决问题。



 类似资料:
  • 问题内容: 我需要使用Maven antrun插件将Hibernate字节码检测添加到我的Java类之一中,以便启用各个字段的延迟加载。但是,我无法让插件在构建周期内执行。 我如何指示Maven在编译后但在构建期间打包之前执行antrun插件? 当前的pom.xml(代码段): 我所见过的有关此问题的所有文档均显示该插件已配置为在“流程类”阶段运行。但是,从Maven 文档看来,“ process

  • 在针对Mac的JDK1.7中,com.sun.tools.javah.main的位置从classes.jar移到了tools.jar。因此,Maven的maven-antrun-plugin找不到run the javah任务,并抛出ClassNotFound异常: 1.7位置:/library/java/javavirtualmachines/1.7.0.jdk/contents/home/li

  • 我正在尝试用Maven安装UIMA JDK。然而,总有一个警告 请帮助我解决此问题

  • 步骤1:在此基础上,我使用构建了一个包含所有依赖项的独立jar。 pom.xml 将方法添加到runner类,并根据this、this和this传递cmdline arg。 如何通过cmdline args指向JAR中的目录?

  • 我这里有一个多模块maven项目。 父项目共有3个模块,with-paranamer,with-paranamer。 下面是项目的结构。 我想使用exec-maven-plugin在withon-paranamer模块中执行类。因此,我在这里的parent pom.xml中的pluginManagement下添加了exec-maven-plugin。 在unit-paranamer模块中,我添加了

  • 问题内容: 我正在尝试使用jaxb- maven插件使用JAXB将多个XSD转换为不同包中的POJO。我已将其设置为使用多个执行块,然后执行第一个执行块,然后出现一条消息:模式或绑定文件中未检测到更改 这是我pom.xml的摘录: 这是我收到的错误消息: 如果我交换执行块,则第一个总是执行,其余两个块得到相同的消息。 关于如何解决这个问题的任何想法? 问题答案: 通过升级到版本1.6进行了修复 和