Вытирание локального репозитория Знатока на машине сборки

Некоторые другие вещи, с которыми я столкнулся в XML по сравнению с областью JSON:

JSON очень хорош для

  • пары имя/значение
  • вложение те пары

, Что означает, что это имеет тенденцию любить массив или вложенный массив. Однако JSON отсутствует оба

  • атрибуты
  • пространство имен

Поэтому, если бы необходимо было объединить два или больше сервиса JSON то могли бы быть потенциальные конфликты пространства имен. Так как тот упомянутая JSON, может использоваться приблизительно для 90% того же самого, для которого может использоваться XML при обмене данными, по моему опыту.

42
задан Rich Seller 21 August 2009 в 08:59
поделиться

4 ответа

Насколько велика файловая система? Каждую ночь у нас выделено 10 ГБ для сборки и архивации снимков старше 30 дней. Кажется, это работает

Вы делаете сборки каждые X часов или при изменении кода? Переход на изменения кода уменьшит количество артефактов без уменьшения покрытия.

Вы устанавливаете все снимки локально? Не обязательно делать это во всех случаях. В большинстве случаев локально необходимо установить только те моментальные снимки, которые активно разрабатываются зависимостями.

Вы устанавливаете файлы EAR / WAR локально? Вероятно, они вам тоже не понадобятся.

Сколько рабочих мест у вас осталось? Мы используем hudson и сохраняем только последние 5 сборок.

0
ответ дан 26 November 2019 в 23:55
поделиться

Плагин зависимостей Maven имеет цель purge-local-repository , которая позволяет вам удалить зависимости для данного проекта из локального репозитория, если он запущен, скажем, один раз в день по каждому проекту снимки не будут накапливаться.


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

Например (обратите внимание, что это может потребовать некоторой настройки, поскольку я сделал это по памяти):

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <phase>package</phase>
      <configuration>
        <tasks>
          <delete>
            <fileset dir="${settings.localRepository}">
              <include name="**/*.jar"/>
              <exclude name="**/*.pom"/>
              <exclude name="**/*.war"/>
              <exclude name="**/*.ear"/>
              <exclude name="**/*.md5"/>
              <exclude name="**/*.sha"/>
              <!--any other extensions?...-->
              <!--match the timestamp pattern-->
              <containsregexp expression="[0-9]{8}.[0-9]{6}-[0-9]+"/>
            </fileset>
          </delete>
        </tasks>
      </configuration>
      <goals>
        <goal>run</goal>
      </goals>
    </execution>
  </executions>
</plugin>
27
ответ дан 26 November 2019 в 23:55
поделиться

Если вы используете hudson, вы можете настроить задание по расписанию, чтобы просто удалять весь репозиторий один раз в день или что-то в этом роде. У меня есть задание под названием hudson-maven-repo-clean со следующей конфигурацией:

  • Сборка / выполнение оболочки: rm -rf ~ hudson / .m2 / repository
  • Сборка Триггеры / сборка периодически: 0 0 * * *
19
ответ дан 26 November 2019 в 23:55
поделиться

В дополнение к purge-local-repository (который мне кажется ядерным вариантом, поскольку он предлагает только конфигурацию , исключает как в отличие от явного включает ), обратите внимание на моджо Remove Project Artifact . Я собираюсь реализовать его сейчас, поскольку мой точный вариант использования - очистить большие снимки WAR и EAR, которые создаются на моих машинах CI (а иногда и на рабочих станциях).

4
ответ дан 26 November 2019 в 23:55
поделиться
Другие вопросы по тегам:

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