【发布时间】:2018-12-11 19:09:47
【问题描述】:
我需要在我的maven 构建后生成的war 中替换.wsdd 文件中的多行。
我为此使用antrun-maven-plugin 和ant's replace task。
下面是来自pom.xml的sn-p:
<plugin>
<groupId>com.github.odavid.maven.plugins</groupId>
<artifactId>antrun-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target>
<ant antfile="replace.xml">
<target name="replace-config"/>
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions></plugin>
这里replace.xml 包含ant 目标以实际替换多行标记并用替换的.wsdd 文件更新最终的war,下面是我们在.wsdd 文件中替换多行标记的部分。
<target name ="replace-config">
<echo>********** Replacing tokens in server-config.wsdd file *************</echo>
<replace dir="${basedir}/target/as_gen/WEB-INF/" >
<include name="server-config.wsdd"/>
<replacetoken><![CDATA[<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>]]></replacetoken>
<replacevalue><![CDATA[<requestFlow>
<handler type="java:com.as.webservices.TS9TicketTokenSender">
<parameter name="scope" value="session"/>
</handler>
<handler name="_wss4j_as_receiver_handler" type="java:com.as.security.asWSSReceiverHandler">
<parameter name="action" value="NoSecurity"/>
</handler>
<handler type="java:com.cm.ChangeHandler"/>
<handler type="java:com.cm.WSLoggingHandler"/>
</requestFlow>
<responseFlow>
<handler type="java:com.as.webservices.TS9TicketTokenSender"/>
<handler name="_wss4j_as_sender_handler" type="java:com.as.security.asWSSSenderHandler">
<parameter name="signatureKeyIdentifier" value="IssuerSerial"/>
<parameter name="encryptionKeyIdentifier" value="IssuerSerial"/>
<parameter name="action" value="NoSecurity"/>
</handler>
<handler type="java:com.cm.WSLoggingHandler"/>
</responseFlow>
]]></replacevalue>
</replace>
现在这在 unix 机器上运行时给出了正确的结果,并且令牌被替换值成功替换,但不知何故,替换不会发生在我的 windows 机器上。
请帮助识别问题和替代方法。谢谢。
【问题讨论】:
标签: maven build ant maven-antrun-plugin maven-ant-tasks