[ 
https://issues.apache.org/jira/browse/MANTRUN-197?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16355760#comment-16355760
 ] 

Paul Benedict edited comment on MANTRUN-197 at 2/7/18 5:29 PM:
---------------------------------------------------------------

Please add the support. I also have this problem when using the 
{{maven-script-ant}} scripting component. Maven doesn't know where to find the 
import because, evidently, the main build file was extracted into my operating 
system's temp directory.


was (Author: paul4christ79):
Please add the support. I also have this problem when using the 
`maven-script-ant` scripting component. Maven doesn't know where to find the 
import because, evidently, the main build file was extracted into my operating 
system's temp directory.

> Can't use ant import task in target xml
> ---------------------------------------
>
>                 Key: MANTRUN-197
>                 URL: https://issues.apache.org/jira/browse/MANTRUN-197
>             Project: Maven Antrun Plugin
>          Issue Type: Wish
>    Affects Versions: 1.8
>            Reporter: Christoph Dittberner
>            Priority: Major
>
> I want to externalize a macrodef to include it in different ant excecutions. 
> But using the ant import task throws an exception because the import task has 
> be defined *outside* of a target definition. There seems no way to specify 
> markup outside of or before the autogenerated main target tag to include the 
> import statement in the generated target/ant-run/build-main.xml.
> example to illustrate the problem:
> {code:title=src/ant/macrodef.xml|xml}
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <project name="macrodef">
>     <macrodef name="hello">
>         <sequential>
>             <echo>hello world.</echo>
>         </sequential>
>     </macrodef>
> </project>
> {code}
> {code:title=pom.xml|xml}
> ...
> <plugin>
>     <groupId>org.apache.maven.plugins</groupId>
>     <artifactId>maven-antrun-plugin</artifactId>
>     <version>1.8</version>
>     <executions>
>         <execution>
>             <id>call-macrodef-1st</id>
>             <phase>process-sources</phase>
>             <goals>
>                 <goal>run</goal>
>             </goals>
>             <configuration>
>                 <target>
>                     <import file="src/ant/macrodef.xml"/>
>                     
>                     <hello/>
>                 </target>
>             </configuration>
>         </execution>
>         <execution>
>             <id>call-macrodef-2nd</id>
>             <phase>process-sources</phase>
>             <goals>
>                 <goal>run</goal>
>             </goals>
>             <configuration>
>                 <target>
>                     <import file="src/ant/macrodef.xml"/>
>                     
>                     <hello/>
>                     <hello/>
>                 </target>
>             </configuration>
>         </execution>
>     <executions>
>     
>     ...
>     
> </plugin>
> ...
> {code}
> {code:title=stacktrace}
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute 
> goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run 
> (generate-launchers-server) on project project.build.dist: An Ant 
> BuildException has occured: import only allowed as a top-level task
> around Ant part ...<import 
> file="n:\project.build.dist/src/ant/macrodef.xml"/>... @ 4:61 in 
> n:\project.build.dist\target\antrun\build-main.xml
>         at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
>         at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
>         at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
>         at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
>         at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
>         at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
>         at 
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
>         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
>         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
>         at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
>         at 
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
>         at 
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> Caused by: org.apache.maven.plugin.MojoExecutionException: An Ant 
> BuildException has occured: import only allowed as a top-level task
> around Ant part ...<import 
> file="n:\project.build.dist/src/ant/macrodef.xml"/>... @ 4:61 in 
> n:\project.build.dist\target\antrun\build-main.xml
>         at 
> org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:342)
>         at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
>         at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
>         ... 20 more
> Caused by: n:\project.build.dist\target\antrun\build-main.xml:4: import only 
> allowed as a top-level task
>         at 
> org.apache.tools.ant.taskdefs.ImportTask.execute(ImportTask.java:133)
>         at 
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at 
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
>         at org.apache.tools.ant.Task.perform(Task.java:348)
>         at org.apache.tools.ant.Target.execute(Target.java:435)
>         at org.apache.tools.ant.Target.performTasks(Target.java:456)
>         at 
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
>         at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
>         at 
> org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:313)
>         ... 22 more
>               
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to