2015-11-12 5 views
0

Я пытаюсь использовать фильтрацию ресурсов maven для замены текста в классе java. На данный момент я только частично преуспел, т. Е. У меня есть класс Java, который имеет тот же самый placeholder на двух местах. Запустив maven install, он правильно заменит один из классов java, но не тот, который объявлен в java-анотации класса.Фильтрация ресурсов Maven - игнорирование объявления внешнего класса

Ниже соответствующая часть моего класса:

@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; 
    } 

И с ПОМ, у меня есть:

<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 или нет? Есть ли какие-либо ограничения на фильтрацию ресурсов?

+0

[Здесь вы можете увидеть] (https://github.com/khmarbaise/version-examples/tree/master/version-example-iv) как использовать templating- maven-plugin, чтобы работать, что вам нравится. – khmarbaise

+0

@khmarbaise, возможно ли использовать конкретный пакет java-template и просто указать на определенный класс или подпакет? Извините, но это не «звучит» хорошо, отделяя его как шаблон, так как целью этого файла является не шаблон. – FernandoA

+0

'java-template' - это не пакет, это просто папка, где можно найти те классы, которые должны быть отфильтрованы ... – khmarbaise

ответ

0

Это не совсем решение, так как я не совсем понял, почему это не работает должным образом. Однако, после некоторых попыток, я продолжал менять местоположение тегов, и после некоторых попыток это сработало. Вот как все это закончилось:

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