отличные зависимости знатока

Я - "один программист" полосы человека, и я наконец начал использовать управление версиями, когда я копировал целые приложения и поместить их в папку, названную "резервным копированием" и затем более поздним именованием их что-то как "с 20080122 резервным копированием". Я предполагаю, что много людей запускает этот путь. Таким образом, вопрос не состоит в том, необходимо ли использовать управление версиями, а скорее необходимо ли сделать это правильный путь, или необходимо ли взломать вместе некоторое half-assed самодельное факсимиле?

6
задан Pascal Thivent 10 December 2009 в 13:10
поделиться

4 ответа

Here's a refined version of Pascal's answer. I upgraded the main plugin version to 1.2, the dependency to Groovy 1.7, and wrapped it all in a pluginManagement tag so that it will nicely leverage the inheritance model.

Keep in mind that the 1.3-SNAPSHOT of the GMaven plugin has already begun using the 1.7-rc2 Groovy provider.

<!-- I wrapped everything in a plugin management section so that this can be neatly inherited across all your poms -->
<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.codehaus.gmaven</groupId>
      <artifactId>gmaven-plugin</artifactId>
      <!-- Notice I upgraded it to 1.2 -->
      <!-- Details here http://repo1.maven.org/maven2/org/codehaus/gmaven/gmaven-plugin/1.2/gmaven-plugin-1.2.pom -->
      <version>1.2</version>
      <dependencies>
        <dependency>
          <groupId>org.codehaus.gmaven.runtime</groupId>
          <artifactId>gmaven-runtime-1.7</artifactId>
          <version>1.2</version>
        </dependency>
      </dependencies>
    </plugin>
  </plugins>
</pluginManagement>
7
ответ дан 10 December 2019 в 00:39
поделиться

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

0
ответ дан 10 December 2019 в 00:39
поделиться

Переопределение зависимости, используемой плагином, - хорошая возможность, которая была фактически введена в Maven 2.0.9.

Для этого, по крайней мере, с плагином, который вы используете как обычный плагин сборки - в отличие от отчета, который не относится к gmaven-plugin , поэтому я не буду описывать в этом случае здесь - просто добавьте блок зависимостей внутри блока плагина, как этот (это пример, поэтому версии могут быть неточными):

<plugin>
  <groupId>org.codehaus.groovy.maven</groupId>
  <artifactId>gmaven-plugin</artifactId>
  <version>1.0</version>
  <executions>
    <execution>
      <goals>
        <goal>generateStubs</goal>
        <goal>compile</goal>
        <goal>generateTestStubs</goal>
        <goal>testCompile</goal>
      </goals>
    </execution>
  </executions>
  <dependencies>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>1.7-beta-1</version>
    </dependency>
  </dependencies>
</plugin>

Пока новая версия зависимости "совместима с API" с версией плагина был связан против, все должно быть в порядке. Если нет, то вам, очевидно, придется перейти на более новую версию плагина, совместимую с новым API (то есть, вероятно, используя его как зависимость), что вы и сделали.

2
ответ дан 10 December 2019 в 00:39
поделиться

Чтобы gmaven точно выбирал правильную среду выполнения, нужно настроить значение "providerSelection", например

<plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
             <configuration>
                 <providerSelection>1.7</providerSelection>
             </configuration>

К вашему сведению, для groovy: provider mojo это конфигурации, которые он ожидает (я извлек их путем отладки на org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals (List, Stack, MavenSession, MavenProject) (ищите XmlPlexusConfiguration ):

<configuration>
 <remoteRepositories implementation="java.util.List">${project.pluginArtifactRepositories}</remoteRepositories>
 <project implementation="org.apache.maven.project.MavenProject">${project}</project>
 <artifactRepository implementation="org.apache.maven.artifact.repository.ArtifactRepository">${localRepository}</artifactRepository>
 <pluginArtifactMap implementation="java.util.Map">${plugin.artifactMap}</pluginArtifactMap>
 <providerSelection implementation="java.lang.String">${gmaven.runtime}</providerSelection>
</configuration>
1
ответ дан 10 December 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: