разработка плагина maven, как исключить файлы bitkeeper - PullRequest
3 голосов
/ 13 марта 2010

Я пишу плагин для maven 2, и я бы хотел исключить все java-файлы, связанные с исходным репозиторием, который я использую, а именно BitKeeper. Эти файлы живут в каталогах, называемых SCCS. До сих пор я был неудачным.

Когда я добавляю плагин maven-compile-plugin с исключающими данными, он работает (файлы BitKeeper исключаются), если я запускаю mvn compiler: compile. Но это не обязательно для фазы компиляции. Так что, когда я запускаю mvn compile, он взрывается, пытаясь скомпилировать специфический для исходного кода файл java. Любая помощь или указатели приветствуются.

Еще одна вещь, на которую стоит обратить внимание: все работает отлично, если я изменю упаковку с «maven-plugin» на «jar», что, конечно, я не могу сделать постоянно, поскольку это плагин maven, который я пытаюсь написать.

Извините, если на это ответили в другом месте. Я просмотрел несколько часов здесь и через документы maven, но, похоже, все в этой теме связано с написанием кода, который будет упакован в jar, а не в maven плагины.

Вот мой pom.xml:

<project>

<modelVersion>4.0.0</modelVersion>
<groupId>com.mycomp.mygroup</groupId>
<artifactId>special-persistence-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0-SNAPSHOT</version>
<name>Special Persistence Plugin</name>

<dependencies>
  <dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-plugin-api</artifactId>
    <version>2.0</version>
  </dependency>
</dependencies>

<build>
  <plugins>
    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <encoding>UTF-8</encoding>
        <excludes>
           <exclude>**/SCCS/**/*.java</exclude>
        </excludes>
        <phase>compile</phase>
         <goals>
           <goal>compiler:compile</goal>
         </goals>         
       </configuration>
     </plugin>
  </plugins>
</build>

</project>

Спасибо всем, у кого есть идеи по этому поводу,

-Denali

1 Ответ

1 голос
/ 16 марта 2010

На самом деле, plugin:descriptor срабатывает во время фазы generate-resources, которая предшествует compile (см. Ссылку жизненного цикла для упаковки типа maven-plugin).

В любом случае, проблема здесь в том, что независимо от причины сбоя (даже если mojo был в состоянии проанализировать p.STSMojo.java, который должен содержать какой-то неожиданный заголовок, плагин не позволяет Mojo присутствовать дважды) , Плагин Maven не поддержка включает / исключает (см. MPLUGIN-15 и проголосуйте за него), и я не уверен, что вы можете решить это по конфигурации.

Возможно, вы сможете сгенерировать дескриптор плагина, пока код не находится под контролем версии, поместите дескриптор в /META-INF/maven/plugin.xml и настройте плагин Maven для пропуска генерации дескриптора. Но я не проверял это.

Или, может быть, вы могли (чистый или грязный) исправить плагин. Но я не смотрел на источник, поэтому не могу много говорить об этом.

Или, и это, конечно, не ожидаемый ответ, но все же самый простой, вы можете использовать другую VCS для своего mojo (только для Mojo, почему бы не параллельно с bitkeeper).

Я бы начал с комментария по проблеме Jira (ваш сценарий использования вполне допустим и должен поддерживаться), там вы могли бы получить лучшие идеи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...