Maven-релиз-плагин и плагин строитель-помощник - PullRequest
5 голосов
/ 12 июля 2011


Я предполагаю, что что-то упустил ..
Я хочу сделать релиз своего проекта.
Я добавил maven-release-plugin в свой pom.Кроме того, у меня есть другой исходный код, кроме Java (назовите его gen-src).Когда я делаю первые шаги в выпуске maven (т.е. готовлюсь), все в порядке, но когда я заставляю выполнять , он не учитывает gen-src.

<plugin>
       <groupId>org.codehaus.mojo</groupId>
      <artifactId>build-helper-maven-plugin</artifactId>
      <version>1.7</version>
       <executions>
          <execution>
               <id>add-source</id>
               <phase>generate-sources</phase>

               <goals>
                  <goal>add-source</goal>
               </goals>
               <configuration>
                   <sources>
                        <source>src/main/gen_src</source>
                   </sources>
               </configuration>
          </execution>
       </executions>
    </plugin>

Подозреваю, что это может быть связано с тем, что генерируется фаза-источники.Нужно ли добавлять цель добавления источника к другой фазе?Если да, то как?
Я также прочитал в здесь - это аналогичная проблема, хотя я не использую flex..no ответа.Есть идеи?
Спасибо.

Ответы [ 2 ]

1 голос
/ 26 декабря 2011

В прошлом у меня была такая же проблема, и я думаю, что знаю, что происходит.Выпуск: выполните этап извлечения копии тега, который будет выпущен в папку 'target / checkout', и разветвите процесс maven для создания этого извлечения.Поскольку у вас есть проблема только на этапе release: execute, это должно быть связано с тем, что maven запускает процесс fork в папке «target / checkout», а не в папке «./».

Я решил эту проблему, удалив помощника по сборке, но я не знаю, можете ли вы сделать то же самое, поэтому на вашем месте я бы попытался избежать относительных путей в конфигурациях.Вы можете настроить помощника по сборке следующим образом:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <version>1.7</version>
   <executions>
      <execution>
           <id>add-source</id>
           <phase>generate-sources</phase>

           <goals>
              <goal>add-source</goal>
           </goals>
           <configuration>
               <sources>
                    <source>${basedir}/src/main/gen_src</source>
               </sources>
           </configuration>
      </execution>
   </executions>
</plugin>

Если явно указать $ {basedir}, можно избежать этой проблемы, потому что $ {basedir} разрешит путь к ветке (your_workspace / project / target / checkout)вместо текущего пути (your_workspace / project).Если это не решит проблему, я считаю, что мы должны сообщить об ошибке в build-helper-maven-plugin, потому что не должно быть ошибок только на этапе выполнения.

0 голосов
/ 02 сентября 2011

Сгенерированные исходные классы не попадут в двоичный файл jar - там вы найдете только файлы .class, полученные в результате компиляции как обычных, так и сгенерированных источников.Плагин релиза Maven, тем не менее, будет включать в каталог исходных файлов дополнительный каталог с исходным кодом.

Нет необходимости выполнять цель «add-source» на любом другом этапе;то, что вы могли бы найти полезным, это сообщить чистому плагину, что он должен включать дополнительный каталог:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
    <filesets>
        <fileset>
            <directory>${basedir}/src/main/gen_src</directory>
            <includes>
                <include>**/*</include>
            </includes>
        </fileset>
    </filesets>
</configuration>
</plugin>
...