Конфигурация кажется правильной с отсутствием параметра id внутри части выполнения. Правильный способ:
<executions>
<execution>
<id>someID</id>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>org.aptovia.javaee7.CDBOOKSTORE.Main</mainClass>
</configuration>
</execution>
</executions>
Предполагая, что вы используете основной метод с использованием maven, выполнение будет выглядеть следующим образом:
mvn exec: java @ someID
someID добавлен внутри исполнение часть.
Вы можете использовать функцию высшего порядка, чтобы возвратить 'собранную' версию Вашего экстрактора, тот способ, которым это быстрее.
С regexes и компилированием regex однажды в закрытии, соответствие JavaScript возвратит все соответствия.
Это оставляет нас только с необходимостью удалить то, что мы использовали в качестве наших маркеров (т.е.: {{
), и мы можем использовать веревочную длину для этого с частью.
function extract([beg, end]) {
const matcher = new RegExp(`${beg}(.*?)${end}`,'gm');
const normalise = (str) => str.slice(beg.length,end.length*-1);
return function(str) {
return str.match(matcher).map(normalise);
}
}
Собирают однажды и используют многократно...
const stringExtractor = extract(['{','}']);
const stuffIneed = stringExtractor('this {is} some {text} that can be {extracted} with a {reusable} function');
// Outputs: [ 'is', 'text', 'extracted', 'reusable' ]
Или одно-разовое использование...
const stuffIneed = extract(['{','}'])('this {is} some {text} that can be {extracted} with a {reusable} function');
// Outputs: [ 'is', 'text', 'extracted', 'reusable' ]
Также взгляд на JavaScript replace
функция, но использование функции для сменного аргумента (Вы сделали бы это, если бы, например, Вы делали мини-двигатель шаблона (веревочная интерполяция)..., lodash.get мог бы также быть полезным затем, чтобы получить ценности, которыми Вы хотите заменить?...
Мой ответ слишком длинный, но он мог бы помочь кому-то!