Спасибо, Qwerky! но я нашел другую проблему с taskdefs.

аюсь использовать "если" задачи муравья в сборке Maven.

Я нашел много статей, которые предлагают использовать зависимость "ant-nodeps". В конце концов все эти трюки не сработали на maven3 + ant 1.8.1 + maven-antrun-plugin 1.6.

«Возникла исключительная ситуация Ant BuildException: Проблема: не удалось создать задачу или ввести if»

Может ли что-нибудь помочь?

Вот реальный код (скорее, это не обязательно, но на всякий случай):

 <profiles>
    <profile>
        <id>smtpConfigurationProfile</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.6</version>
                    <executions>
                        <execution>
                            <phase>validate</phase>
                            <goals>
                                <goal>run</goal>
                            </goals>
                            <configuration>
                                <tasks>
                                    <if>
                                        <isset property="${smtpFile}"/>
                                        <then>
                                            <delete file="${project.build.outputDirectory}/smtp.properties"/>
                                            <copy file="${smtpFile}"
                                                  tofile="${project.build.outputDirectory}/smtp.properties"/>
                                        </then>
                                        <elseif>
                                            <isset property="${smtpProfile}"/>
                                            <then>
                                                <delete file="${project.build.outputDirectory}/smtp.properties"/>
                                                <copy file="src/main/resources/${smtpProfile}.smtp.properties"
                                                      tofile="${project.build.outputDirectory}/smtp.properties"/>
                                            </then>
                                            <else>
                                                <delete file="${project.build.outputDirectory}/smtp.properties"/>
                                                <copy file="src/main/resources/production.smtp.properties"
                                                      tofile="${project.build.outputDirectory}/smtp.properties"/>
                                            </else>
                                        </elseif>
                                    </if>
                                </tasks>
                            </configuration>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant-nodeps</artifactId>
                            <version>1.8.1</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

Ответы на вопрос(2)

Решение Вопроса

1) Добавьте эту строку перед задачами ant в целевой секции:

<taskdef resource="net/sf/antcontrib/antlib..plugin.classpath" />

2) Добавитьименно так следующие зависимости для плагина:

                        <dependencies>
                        <dependency>
                            <groupId>ant-contrib</groupId>
                            <artifactId>ant-contrib</artifactId>
                            <version>1.0b3</version>
                            <exclusions>
                                <exclusion>
                                    <groupId>ant</groupId>
                                    <artifactId>ant</artifactId>
                                </exclusion>
                            </exclusions>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant-nodeps</artifactId>
                            <version>1.8.1</version>
                        </dependency>
                    </dependencies>
 Dan28 мар. 2018 г., 22:48
@sunilGarg Вы включили зависимости в плагин или в проект?dependencies тег? Я должен был включить его в плагин, т.е.stackoverflow.com/a/43853892/1062833
 Sunil Garg30 авг. 2017 г., 11:45
[taskdef] Не удалось загрузить определения из ресурса net / sf / antcontrib / antlib.xml. Это не может быть найдено.

Вот где у меня была такая же проблема.

Я решил это, переместив свою зависимость от ant-contrib из плагина в проект.

 Oleg Chirukhin24 янв. 2011 г., 08:23
Спасибо, Qwerky! но я нашел другую проблему с taskdefs.

Ваш ответ на вопрос