Вы могли инкапсулировать каждый процесс в объекте C++ и сохранить список их в глобальной области видимости. Деструкторы могут закрыть каждый процесс. Это будет хорошо работать, если программа будет обычно выходить, но это, который это разрушает, все ставки, выключено.
Вот грубый пример:
class myprocess
{
public:
myprocess(HANDLE hProcess)
: _hProcess(hProcess)
{ }
~myprocess()
{
TerminateProcess(_hProcess, 0);
}
private:
HANDLE _hProcess;
};
std::list<myprocess> allprocesses;
Тогда каждый раз, когда Вы запускаетесь один, назовите allprocessess.push_back (hProcess);
Есть ли способ переместить этот репозиторий в черный список или переопределить эти настройки?
Насколько мне известно, это невозможно.
Почему он выполняет поиск в репозитории Jasper, возможно, потому что of range
Да, я думаю, что диапазоны "ответственны" за такое поведение. Без диапазонов Maven не пришлось бы проверять удаленные репозитории на наличие более новой версии, чем та, которая доступна в вашем локальном репозитории.
Моя идея решить эту проблему - изменить jasper pom и использовать репозиторий прокси, но я ищу другой вариант .
Исправление jasper pom и использование прокси-репозитория, конечно, было бы идеальным решением, но это не всегда возможно. Однако, возможно, есть обходной путь. Вы пытались исключить транзитивные зависимости jasperreports, которые имеют диапазоны, и вместо этого предоставить их самостоятельно (с фиксированной версией) в своем pom. Примерно так:
<dependencies>
<dependency>
<groupId>jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>1.3.3</version>
<!-- Remove Transitive dependencies drawn by Jasper Report that we don't want -->
<exclusions>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
...
</exclusions>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>2.1</version><!-- Or whatever version, as long as it's fixed -->
<scope>compile</scope>
</dependency>
....
<dependencies>
Таким образом, Maven не должен проверять несуществующий репозиторий, и это должно избежать ожидания тайм-аута. Я бы попробовал.
Я использую версию jasperreports 1.3.3 и не хочу ее менять.
Нет проблем.
Вы можете переопределить репо, используя объявление mirrorOf в вашем settings.xml. Хотя это не то, для чего оно обычно предназначено, установка, например, mirrorOf на repoid jasper reports и указание его на Central (repo1.maven.org) эффективно заставит его исчезнуть.
Лучшим вариантом будет использование менеджера репозиториев, например Nexus, и тогда вы сможете контролировать, какие прокси и артефакты на самом деле обслуживаются.