2014-02-14 23 views
1

我有一个包含这个资源context.xml文件:Maven的战争插件 - 定制过滤器delimitters在webResources

<Resource name="${jndi.name}" auth="Container" 
      type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" 
      url="jdbc:oracle:thin:@${db.server}:${db.port}:${db.name}" 
      username="${db.user}" password="${db.pwd}" maxActive="500" maxIdle="60" 
      maxWait="-1"/> 

,并在处理Web应用程序资源Maven的战争插件过滤器,文件:

<plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <dependentWarExcludes>WEB-INF/lib/*.jar,**/web.xml</dependentWarExcludes> 
      <webResources> 
      .... 
      <resource> 
       <directory>src/main/webapp/META-INF</directory> 
       <targetPath>META-INF</targetPath> 
       <filtering>true</filtering> 
      </resource> 
      .... 
      </webResources> 
     </configuration> 
     </plugin> 

,其结果是:

<Resource name="myjndiname" auth="Container" 
      type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" 
      url="jdbc:oracle:thin:@${db.server}:${db.port}:${db.name}" 
      username="user" password="pass" maxActive="500" maxIdle="60" 
      maxWait="-1"/> 

的URL部分没有被过滤,如 '@' 被解释作为分隔符。定界符参数可以为maven-resources-plugin定制,但我不知道如何为maven-war-plugin做到这一点!

请帮忙!

回答

0

尝试逃离at符号像\@

+0

使用反斜杠,你建议,但问题仍然存在我想: '<资源名称= “myjndiname” AUTH = “容器” TYPE =“javax.sql中。数据源” driverClassName = “oracle.jdbc.OracleDriver” URL = “JDBC:预言:瘦:\ @ $ {db.server}:$ {db.port}:$ {db.name}” 用户名= “用户”密码=“pass”maxActive =“500”maxIdle =“60” maxWait =“ - 1”/>' – aminweb007

+0

这是Maven Shared Filtering中的一个错误。如果你在https://jira.codehaus.org/browse/MSHARED/component/13380上创建一个Jira问题,我可以看看它。我想尽快发布。现在只有1个公开的问题,但这需要一些重新设计(所以2.0)。也许我可以包含这个问题的错误修正。 –

+0

这个单元测试通过,不知道它在哪里或何时被修复:http://svn.apache.org/r1571030 –

相关问题