2011-01-21 9 views
7

Próbuję użyć "jeśli" zadań ant w ramach budowy maven.maven3 - maven-antrun-plugin - "nie udało się utworzyć zadania lub wpisać, jeśli"

Znalazłem wiele artykułów, które sugerują użycie zależności "anth-nodeps". Ostatecznie wszystkie te sztuczki nie działały na maven3 + ant 1.8.1 + maven-antrun-plugin 1.6.

"mrówka BuildException wystąpił: Problem: nie udało się utworzyć zadanie lub rodzaj jakby"

może coś pomóc?

Oto prawdziwy kod (raczej, że nie jest konieczne, ale na wszelki wypadek):

<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> 

Odpowiedz

17

1) Dodaj tę linię przed mrówek zadań w sekcji docelowej:

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

2) Dodaj dokładnie następujące zależności do wtyczki:

     <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> 
+0

[taskdef] Nie można załadować definicji z zasobu net/sf/antcontrib/antlib.xml. Nie można go znaleźć. –

1

Zobacz moje pytanie here gdzie miałem ten sam problem.

Rozwiązałem to, przesuwając zależność ant-contrib od wtyczki do projektu.

+0

Dziękuję Qwerky! ale znalazłem inny problem z taskdefs. –

Powiązane problemy