2015-08-21 3 views
1

У меня есть проект Maven, который создает исправленную версию библиотеки Solr-core Apache. Первый шаг заключается в распаковке первоисточники:Изменить разрешения источников, распакованных Maven?

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.10</version> 
      <executions> 
       <execution> 
        <id>solr-core-sources</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>unpack</goal> 
        </goals> 
        <configuration> 
         <artifactItems> 
          <artifactItem> 
           <groupId>org.apache.solr</groupId> 
           <artifactId>solr-core</artifactId> 
           <version>${solr.version}</version> 
           <type>jar</type> 
           <classifier>sources</classifier> 
           <outputDirectory>${solr.sources.dir}</outputDirectory> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

Проблема заключается в том, что на некоторых платформах, источники выходят нечитаемым, с правами доступа 070 (--- RWX ---). Например. это нормально на сервере сборки Linux (perms - 644), но поведение несовместимо между машинами Windows 7 от разработчиков, каждый под Cygwin и с umask 0022.

Я хотел бы добавить шаг после распаковки в chmod из источников : Есть ли способ сделать это? Я экспериментировал с перестановками плагина зависимостей ignorePermissions и useJvmChmod без успеха. Я знаю, что плагин сборки поддерживает операции chmod, но, по-видимому, не на месте, как мне хотелось бы здесь, и я также сталкивался с тяжелым решением с использованием муравьев. Любые идеи или рекомендации? Благодаря!

+0

Проблема была в моей установке Cygwin: решение заключалось в редактировании/etc/fstab, как описано здесь: http://stackoverflow.com/a/7082542/1312552 – Richard

ответ

2

Вы можете использовать antrun плагин для запуска CHMOD после распаковки файлов:

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.8</version> 
       <executions> 
        <execution> 
         <id>build</id> 
         <phase>compile</phase> 
         <goals> 
          <goal>run</goal> 
         </goals> 
         <configuration> 
          <target> 
           <echo>run chmod in ${basedir}</echo> 
           <chmod file="${project.basedir}/filepattern.txt" perm="ugo+rx"/> 
          </target> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 

Муравей CHMOD Задача обычно ничего на равнине окна не делать (это не вызовет сбой сборки).

+0

Спасибо, я экспериментировал с использованием задачи «attrib» измените разрешения на Windows, но Cygwin всегда считал их 070. Оказалось, что проблема связана с моей конфигурацией Cygwin: см. мой комментарий к исходному сообщению. – Richard

+0

рад, что он работает сейчас :) – wemu

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