Моделирование Maven2 фильтрует механизм с помощью Муравья

ПРИМЕЧАНИЕ: Используя stopEventPropagation() что-то, чего нужно избежать, поскольку это повреждает нормальный поток события в DOM. См. эта статья для получения дополнительной информации. Рассмотрите использование этот метод вместо этого

Присоединение событие щелчка к телу документа, которое закрывает окно. Присоедините отдельное событие щелчка к контейнеру, который останавливает распространение к телу документа.

$(window).click(function() {
//Hide the menus if visible
});

$('#menucontainer').click(function(event){
    event.stopPropagation();
});
5
задан Community 23 May 2017 в 12:33
поделиться

4 ответа

Думаю, expandproperties - это то, что вы ищете. Это действует так же, как фильтры ресурсов Maven2 .


INPUT

Например, если у вас есть каталог src (один из многих файлов):

<link href="${css.files.remote}/css1.css"/>

src / test.txt


PROCESS

И в моем файле сборки ANT мы иметь это:

<project default="default">
   <!-- The remote location of any CSS files -->
   <property name="css.files.remote" value="/css/theCSSFiles" />     
   ...
   <target name="ExpandPropertiesTest">

      <mkdir dir="./filtered"/>

      <copy todir="./filtered">
         <filterchain>
            <expandproperties/>
         </filterchain>     

         <fileset dir="./src" />
      </copy>
   </target>
</project>

build.xml


OUTPUT

* При запуске цели ExpandPropertiesTest в вашем отфильтрованном каталоге будет следующее: *

    <link href="/css/theCSSFiles/css1.css"/>

отфильтровано /test.txt

20
ответ дан 18 December 2019 в 06:12
поделиться

Вы можете определить настраиваемый FilterReader . Итак, у вас есть несколько вариантов:

  1. Расширить / скопировать класс org.apache.tools.ant.filters.ReplaceTokens и определить свойство Map, которое ссылается на другой файл свойств, содержащий все замены. Это все еще немного утомительно, так как вам нужно определить все замены.
  2. Расширьте / скопируйте класс org.apache.tools.ant.filters.ReplaceTokens с помощью дополнительной обработки, которая просто заменяет совпавший токен версией с правильный гарнир. Конечно, вы должны быть очень осторожны при использовании этого типа, поскольку он будет соответствовать чему-либо с начальным и конечным токенами.

Итак, в методе read () ReplaceTokens замените:

final String replaceWith = (String) hash.get(key.toString());

на вызов getReplacement () метод:

...
final String replaceWith = getReplacement(key.toString);
...

private String getReplacement(String key) {
    //first check if we have a replacement defined
    if(has.containsKey(key)) {
        return (String)hash.get(key);
    }

    //now use our built in rule, use a StringBuilder if you want to be tidy
    return "$" + key + "}";
}

Чтобы использовать это, вы должны убедиться, что ваш класс упакован и в Ant ' s path и измените свой фильтр:

<filterreader classname="my.custom.filters.ReplaceTokens">
    <!-- Define the begin and end tokens -->
    <param type="tokenchar" name="begintoken" value="$"/>
    <param type="tokenchar" name="endtoken" value="}"/>
    <!--Can still define explicit tokens, any not
    defined explicitly will be replaced by the generic rule -->
</filterreader>
3
ответ дан 18 December 2019 в 06:12
поделиться

Ant знает концепцию под названием Filterchains , которая здесь полезна. Используйте ReplaceTokens -фильтр и укажите начальный и конечный токены как пустые (обычно это '@'). Это должно помочь.

2
ответ дан 18 December 2019 в 06:12
поделиться

Один хооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо. 1113118] $ ...} шаблон. Я не могу искать шаблоны $ {...} , поскольку begintoken является символом, а не строкой. Затем я устанавливаю список токенов, начинающийся с {(т.е. я вижу {user.name вместо user.name ). Надеюсь, у меня «всего» около 20 строк в my-file.properties, поэтому мне нужно определить «только» 20 токенов в моем Ant-файле ...

Есть ли какое-нибудь простое и глупое решение для решения этого простого и глупого проблема ??

1
ответ дан 18 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: