2016-10-27 2 views
1

Я использую Adobe Experience Manager версии 6, и у меня возникают трудности, исключая файлы .DS_Store из моих пакетов.Шаблон регулярного выражения, похоже, не работает в правиле исключения фильтра Adobe Experience Manager

Я изменил мой META-INF/vault/filter.xml файл, чтобы исключить шаблон имени файла:

<?xml version="1.0" encoding="UTF-8"?> 
<workspaceFilter version="1.0"> 
    <filter root="/apps/myapp"> 
     <exclude pattern="\.DS_Store"/> 
    </filter> 
</workspaceFilter> 

Но когда я загрузить мои пакеты или подталкивать их с помощью VLT файл .DS_Store все еще включен.

Я немного экспериментировал с созданием пакета с помощью фильтра и правила исключения через CRXDE Lite, но это еще больше смутило меня.

Когда я использую оригинальный фильтр с правилом исключения и проверить покрытие, то .DS_Store файлы все еще включены:

files are not excluded

Но когда я создаю этот фильтр с правилом исключения и проверить покрытие , то .DS_Store файлы являются исключены:

files are excluded

Есть ли причина, по которой поражение точки перед DS_Store не работает в исключении, но с использованием шаблона 0 или более?

ответ

0

Ваше первое регулярное выражение (.DS_Store), которое не работает, ищет узел, расположенный в .DS_Store, и файл, вероятно, находится в /.DS_Store. Регулярное выражение должно соответствовать полному пути. Причина, по которой работает ваш второй пример (. * DS_Store), заключается в том, что он ищет 0 или более символов до DS_Store. Это, очевидно, соответствует любому пути, который заканчивается в DS_Store.

Вы можете попробовать свои примеры на http://www.regexr.com/ и добавить некоторые из ваших путей к файлу в текстовой области, чтобы увидеть, как это согласовано.

Вместо того чтобы пытаться использовать filter.xml для исключения файлов, вы можете просто исключить их, используя плагин maven-ассемблер в своей сборке.

В вашем pom.xml вы бы добавить плагин, как это:

  <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <appendAssemblyId>false</appendAssemblyId> 
       <descriptors> 
        <descriptor>src/main/assembly/zip.xml</descriptor> 
       </descriptors> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

В zip.xml вы определили бы что-то вроде следующего, исключающая файлы, которые вы не хотите включить в пакет:

<?xml version='1.0' encoding='UTF-8'?><assembly 
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> 
<id>zip</id> 
<formats> 
    <format>zip</format> 
</formats> 
<includeBaseDirectory>false</includeBaseDirectory> 
<fileSets> 
    <fileSet> 
     <directory>${basedir}/src/main/content/jcr_root</directory> 
     <outputDirectory>jcr_root</outputDirectory> 
     <excludes> 
      <exclude>**/.DS_Store</exclude> 
     </excludes> 
     <filtered>false</filtered> 
    </fileSet> 
    <fileSet> 
     <directory>${basedir}/src/main/content/META-INF</directory> 
     <outputDirectory>META-INF</outputDirectory> 
     <excludes> 
      <exclude>**/.DS_Store</exclude> 
     </excludes> 
     <filtered>true</filtered> 
    </fileSet> 
</fileSets> 
<dependencySets> 
    <dependencySet> 
     <outputDirectory>jcr_root/apps/myapp/install</outputDirectory> 
     <useProjectArtifact>false</useProjectArtifact> 
     <scope>compile</scope> 
     <includes> 
      <include>com.icfolson.aem:myapp-core</include> 
     </includes> 
     <useStrictFiltering>true</useStrictFiltering> 
    </dependencySet> 
</dependencySets> 

Смежные вопросы