Очистить локальный репозиторий maven через maven-плагин на этапе установки

Я хочу удалить содержимое всего моего хранилища (.m2/repository) до этапа установки. Конечно, я не хочу делать это вручную, поэтому я ищу плагин, который делает магию. Пока я сталкивался maven-clean-plugin и я пытаюсь использовать его следующим образом:

<build>
      <sourceDirectory>src/</sourceDirectory>
      <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
               <source>${jdk.version}</source>
               <target>${jdk.version}</target>
            </configuration>
        </plugin>  
        <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
        <filesets>
                  <fileset>
                      <directory>${settings.localRepository}/</directory>
                      <includes>
                          <include>**/*</include>
                      </includes>
                  </fileset>
        </filesets>
        </configuration>
        <executions>
          <execution>
            <id>auto-clean</id>
            <phase>install</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      </plugins>
   </build>

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

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.3:resources (default-resources) on project com.google.protobuf: Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.3:resources failed: Plugin org.apache.maven.plugins:maven-resources-plugin:2.3 or one of its dependencies could not be resolved: Could not find artifact org.apache.maven.plugins:maven-resources-plugin:jar:2.3 -> [Help 1]

Я чувствую, что я довольно близок к решению. Вероятно, мне просто нужно настроить теги параметров плагина.

Кто-нибудь может дать идею?

1 ответ

Решение

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

mvn dependency:purge-local-repository

В POM вы можете использовать его как:

  <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.7</version> 
    <executions> 
      <execution> 
        <id>purge-local-dependencies</id> 
        <phase>clean</phase> 
        <goals> 
          <goal>purge-local-repository</goal> 
        </goals> 
        <configuration> 
          <resolutionFuzziness>groupId</resolutionFuzziness> 
          <includes> 
            <include>org.ambraproject</include> 
          </includes> 
        </configuration> 
      </execution> 
    </executions> 
  </plugin> 
Другие вопросы по тегам