Maven 1

Can't run replacetoken ant tag inside maven

Details

  • Type: Bug Bug
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: 1.0-rc2
  • Fix Version/s: None
  • Component/s: None
  • Labels:
    None
  • Environment:
    Maven 1.0-rc2
    Windows 2000 SP4
    J2SDK 1.4.2_04
    Ant 1.5.3
  • Number of attachments :
    0

Description

Maven can't run replacetoken tag... Maven, Jelly or Werkz seams to
delete the content inside replacetoken tag before ant is
executed by maven...
<replace file="teste.txt">
<replacetoken>123</replacetoken>
<replacevalue>12345</replacevalue>
</replace>
With this example, String "123" is deleted, and ant (executed by maven) can't run because "The token attribute must not be an empty string."

I've tested it in my build.xml and works:
<target name="teste4">
<replace file="teste.txt">
<replacetoken>123</replacetoken>
<replacevalue>12345</replacevalue>
</replace>
</target>
but with maven 1.0-rc2 (maven.xml), with the same code:
<goal name="teste4">
<replace file="teste.txt">
<replacetoken>123</replacetoken>
<replacevalue>12345</replacevalue>
</replace>
</goal>
...does not work.

NOTE: There is no workaround for this, because replacetoken/replacevalue are used for special characters like '<' and '>' (inside <!CDATA[]>), and the tag <replace file="teste.txt" token="<" value=">"> won't work, because such characters are not allowed in this construction...

Activity

Hide
Wim Deblauwe added a comment -

Ran into the same problem today with Maven 1.0.2. Luckally, I could use the attributes of the ant task in stead of the nested elements as a workaround.

Show
Wim Deblauwe added a comment - Ran into the same problem today with Maven 1.0.2. Luckally, I could use the attributes of the ant task in stead of the nested elements as a workaround.
Hide
Brett Porter added a comment -

confirmed bug

Show
Brett Porter added a comment - confirmed bug
Hide
Jacek Laskowski added a comment -

A tested workaround in Maven 1.0.2 is to call <ant:ant/> from within maven.xml. The build.xml file would then look as follows:

<?xml version="1.0" encoding="UTF-8"?>
<project name="temporary workaround" default="replace">

<target name="replace">
<replace file="target/petstore-ear/customer-ejb/META-INF/ejb-jar.xml">
<replacetoken><![CDATA[<ejb-relation-name></ejb-relation-name>]]></replacetoken>
<replacevalue><![CDATA[<!-- ejb-relation-name>Geronimo</ejb-relation-name -->]]></replacevalue>
</replace>
</target>

</project>

It works fine.

Show
Jacek Laskowski added a comment - A tested workaround in Maven 1.0.2 is to call <ant:ant/> from within maven.xml. The build.xml file would then look as follows: <?xml version="1.0" encoding="UTF-8"?> <project name="temporary workaround" default="replace"> <target name="replace"> <replace file="target/petstore-ear/customer-ejb/META-INF/ejb-jar.xml"> <replacetoken><![CDATA[<ejb-relation-name></ejb-relation-name>]]></replacetoken> <replacevalue><![CDATA[<!-- ejb-relation-name>Geronimo</ejb-relation-name -->]]></replacevalue> </replace> </target> </project> It works fine.

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated: