Maven资源过滤 - 忽略外部类声明

时间:2015-11-12 17:40:40

标签: java maven resources filtering

我尝试使用maven资源过滤来替换java类中的文本。 此时,我只是部分成功,即我有一个在两个地方有相同占位符的java类。运行maven install,它会正确替换java类中的一个,但不能替换java类anotation中声明的那个。

以下是我班级的相关部分:

@WebServiceClient(name = "Support", targetNamespace = "http://tempuri.org/", wsdlLocation = "${java.wsdlLocation}" )
public class Support extends Service {

   private final static URL SUPPORT_WSDL_LOCATION;
   private final static WebServiceException SUPPORT_EXCEPTION;
   private final static QName SUPPORT_QNAME = new  Name("http://tempuri.org/", "Support");

   static {
       URL url = null;
       WebServiceException e = null;
       try {
           url = new URL("${java.wsdlLocation}");
       } catch (MalformedURLException ex) {
           e = new WebServiceException(ex);
       }
       SUPPORT_WSDL_LOCATION = url;
       SUPPORT_EXCEPTION = e;
    }

从pom,我有:

<resources>
    <!-- Filter Java files -->
    <resource>
        <filtering>true</filtering>
        <directory>src/main/java</directory>
        <targetPath>../filtered-sources/java</targetPath>
        <includes>
            <include>**/*.java</include>
        </includes>
    </resource>
</resources>

<!-- change default source directory to filtered-sources/java -->
<sourceDirectory>target/filtered-sources/java</sourceDirectory>

我做错了吗?不应该进行资源过滤,取代某种盲文,忽略它是否是一个java类? 资源过滤是否存在任何限制?

1 个答案:

答案 0 :(得分:0)

这不完全是一个解决方案,因为我还没有完全理解为什么这不能按预期工作。但是,在做了一些尝试之后,我不断更改标签的位置,经过一些尝试后它才起作用。 这就是最终结果:

@WebServiceClient(
    name = "Support", 
    targetNamespace = "http://tempuri.org/",
    wsdlLocation = "${java.wsdlLocation}" )
public class Support extends Service {