Окружающая среда: ANT 1.9.4, используя scriptdef javascript для извлечения номера версии из имени файла.Использование ant scriptdef regex, получение javascript.EvaluatorException
В выбранном каталоге найдите имена файлов с расширением .jar, получите все имена файлов, пропустите каждое имя файла, чтобы получить определенную строку и извлечь номер версии из этой строки. Для этого я использовал scriptdef javascript. Код копируется ниже.
формат Имя файла "GeneralService_V1.2.jar" & "GeneralService_V10.6_SSL.jar".
Regex выражение, используемое для получения Vx.x является "\ V \ [0-9] + \. \ [0-9] + \" (это только для второго формата файла).
Я получаю сообщение об ошибке - javax.script.ScriptException: sun.org.mozilla.javascript.EvaluatorException: missing; перед оператором (№ 11) в строке № 11
Его отказ от линии рисунка, я использую правильный оператор Pattern или выражение регулярного выражения не так?
<scriptdef name="jarFiles" language="javascript">
<element name="fileset" type="fileset"/>
<![CDATA[
importClass(java.io.File);
importClass(org.apache.commons.io.FilenameUtils);
importClass(java.util.regex.Pattern);
importClass(java.lang.System);
filesets = elements.get("fileset");
for (i = 0; i < filesets.size(); ++i) {
fileset = filesets.get(i);
Pattern pat = Pattern.compile("_\\V\\[0-9]+\\.\\[0-9]+\\_");
Matcher matcher = pat.match(fileset);
if (matcher.find()) {
System.out.println(matcher.group(0)); //prints _Vx.x_
String currJarVersion = matcher.group(0);
} else {
System.out.println("Match not found");
}
]]>
</scriptdef>
<jarFiles>
<fileset id="jars" dir="${svn.jar.path}">
<include name="**/*.jar" />
</fileset>
</jarFiles>
<propertyregex property="currJarVersion"
regexp="_V"
replace=""
global="true" />
<echo message="${currJarVersion}"/>
Это первый раз, когда я пришел через PathConvert, она работала отлично. Благодарю. – Lola
@Lola Рад, что это помогло, и добро пожаловать в Stack Overflow. Обратите внимание, что когда вы получаете ответ, который решает вашу проблему, это хорошие манеры _accept_, щелкнув галочку влево. Это показывает другим читателям с первого взгляда, что проблема решена (и это также дает бонусу репутации как ответчика, так и ответчика). –
Извините, новичок в этом сайте, я нажал на галочку. Еще раз спасибо. – Lola