Хотел начать делать тестирование методов, которые я буду писать с этого момента, имел долгую мотивацию и, наконец, решил сделать это со вчерашнего дня.Но я был поражен процессом установки.
- Я правильно установил плагин JMH.
- Все операции импорта работают нормально.
- Даже мой POM не показывает ошибок.
Но когда я запускаю команду mvn clean install
, я получаю ошибку ниже:
[ОШИБКА] Не удалось выполнить цель в проекте TestOptional: Не удалось разрешить зависимости дляproject Vishwaratna: TestOptional: jar: 1.0-SNAPSHOT: не удалось разрешить следующие артефакты d: org.openjdk.jmh: jmh-core: jar: 1.21, org.openjdk.jmh: jmh-generator-annprocess: jar: 1.21:Не удалось найти артефакт org.openjdk.jmh: jmh-core: jar: 1.21 в art_all (http://maven/artifactory/li bs-snapshot)
Я подумал, что должен принудительно обновить репозитории, поэтомуя побежал mvn -U clean install
, опять не повезло.
сделал много поисков и просмотрел N-количество потоков SO, но все равно не смог выяснить, где я иду не так.
Когдая просто запускаю свой Testing.java класс, я получаю сообщение ниже:
Нет соответствиятесты.Пропущенное регулярное выражение?
Используйте расширенный режим EXTRA для отладки сопоставления с образцом.
Процесс завершен с кодом выхода 1
Я запутался, что когда maven не может найти этих библиотек JMH из центральных представителей, тогда почему мой код со всеми аннотациями не показывает красную ошибку компиляции ??Если библиотеки импортированы правильно, то почему я получаю ошибку, что xx не может быть загружен, когда я запускаю mvn clean install
с терминала?
После 2 часов борьбы я подумал, что должен отказаться от POM.xml и попыталсячтобы добавить jar вручную, я скачал jar аннотации JMH и jar core JMH и настроил пути вручную.И угадайте, что все еще не повезло.
Если вы хотите знать, что я кодирую:
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
public class Testing {
@Benchmark
@BenchmarkMode({ Mode.AverageTime})
public void wellHelloThere() {
// this method was intentionally left blank.
}
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(Testing.class.getSimpleName())
.forks(1)
.build();
new Runner(opt).run();
}
}
Мой POM.XML
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Vishwaratna</groupId>
<artifactId>TestOptional</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<jmh.version>1.21</jmh.version>
</properties>
<dependencies>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>${jmh.version}</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>${jmh.version}</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>central-repo</id>
<name>Central Repository</name>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.21</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>run-benchmarks</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<executable>java</executable>
<arguments>
<argument>-classpath</argument>
<classpath />
<argument>org.openjdk.jmh.Main</argument>
<argument>.*</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Мне бы хотелось детальное решение, оно было бы полезно для тех, кто наткнулся на эту тему в будущем.
ref и попытался:
Выполнить следующую команду: mvn versions:display-dependency-updates
вывод :
[INFO]
[INFO] All plugins with a version specified are using the latest versions.
[INFO]
[WARNING] The following plugins do not have their version specified:
[WARNING] maven-clean-plugin .......................... (from super-pom) 2.5
[WARNING] maven-compiler-plugin ..................... (from super-pom) 2.0.2
[WARNING] maven-deploy-plugin ......................... (from super-pom) 2.3
[WARNING] maven-install-plugin ........................ (from super-pom) 2.4
[WARNING] maven-jar-plugin ............................ (from super-pom) 2.4
[WARNING] maven-resources-plugin ...................... (from super-pom) 2.6
[WARNING] maven-site-plugin ........................... (from super-pom) 3.3
[WARNING] maven-surefire-plugin .................... (from super-pom) 2.12.4
[WARNING] org.codehaus.mojo:exec-maven-plugin ........................ 1.5.0
[INFO]
[WARNING] Project does not define minimum Maven version, default is: 2.0
[INFO] Plugins require minimum Maven version of: 3.0
[INFO] Note: the super-pom from Maven 3.2.5 defines some of the plugin
[INFO] versions and may be influencing the plugins required minimum Maven
[INFO] version.
[INFO]
[ERROR] Project does not define required minimum version of Maven.
[ERROR] Update the pom.xml to contain
[ERROR] <prerequisites>
[ERROR] <maven>3.0</maven>
[ERROR] </prerequisites>
[INFO]
[INFO] Require Maven 2.0.6 to use the following plugin updates:
[INFO] maven-clean-plugin .............................................. 2.5
[INFO] maven-deploy-plugin ........................................... 2.8.1
[INFO] maven-install-plugin .......................................... 2.5.1
[INFO] maven-jar-plugin ................................................ 2.4
[INFO] maven-resources-plugin .......................................... 2.6
[INFO] maven-site-plugin ............................................. 2.0.1
[INFO] org.codehaus.mojo:exec-maven-plugin ........................... 1.2.1
[INFO]
[INFO] Require Maven 2.0.9 to use the following plugin updates:
[INFO] maven-compiler-plugin ........................................... 3.1
[INFO] maven-surefire-plugin .......................................... 2.17
[INFO]
[INFO] Require Maven 2.2.0 to use the following plugin updates:
[INFO] maven-site-plugin ............................................... 3.0
[INFO]
[INFO] Require Maven 2.2.1 to use the following plugin updates:
[INFO] maven-clean-plugin ............................................ 2.6.1
[INFO] maven-compiler-plugin ........................................... 3.3
[INFO] maven-deploy-plugin ........................................... 2.8.2
[INFO] maven-install-plugin .......................................... 2.5.2
[INFO] maven-jar-plugin ................................................ 2.6
[INFO] maven-resources-plugin .......................................... 2.7
[INFO] maven-site-plugin ............................................... 3.4
[INFO] maven-surefire-plugin ........................................ 2.19.1
[INFO] org.codehaus.mojo:exec-maven-plugin ........................... 1.4.0
[INFO]
[INFO] Require Maven 3.0 to use the following plugin updates:
[INFO] maven-compiler-plugin ................................. 3.8.0-jboss-2
[INFO] maven-resources-plugin ........................................ 3.0.2
[INFO] maven-site-plugin ............................................... 3.6
[INFO] org.codehaus.mojo:exec-maven-plugin ........................... 1.5.0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11:33 min
[INFO] Finished at: 2019-04-10T14:45:21+05:30
[INFO] Final Memory: 15M/261M
[INFO] ------------------------------------------------------------------------
Редактировать:
С помощью команды mvn -U clean install
я вынужден обновить репозитории, и я получил эти загрузки.
Подобраны _JAVA_OPTIONS: -Djava.net.preferIPv4Stack = true [ИНФО] Сканирование проектов ... [ПРЕДУПРЕЖДЕНИЕ] [ПРЕДУПРЕЖДЕНИЕ] При создании эффективной модели для Вишваратны возникли некоторые проблемы: TestOptional: jar: 1.0-SNAPSHOT[ПРЕДУПРЕЖДЕНИЕ] 'build.plugins.plugin. (GroupId: artifactId)' должно быть уникальным, но обнаруживается повторяющееся объявление плагина org.apache.maven.plugins: maven-compiler-plugin @ line 86, столбец 21 [ПРЕДУПРЕЖДЕНИЕ] build.plugins.plugin.version для org.apache.maven.plugins: отсутствует maven-compiler-plugin.@ строка 86, столбец 21 [ПРЕДУПРЕЖДЕНИЕ] 'build.plugins.plugin.version' для org.codehaus.mojo: exec-maven-plugin отсутствует.@ строка 63, столбец 21 [ПРЕДУПРЕЖДЕНИЕ] [ПРЕДУПРЕЖДЕНИЕ] Настоятельно рекомендуется устранить эти проблемы, поскольку они угрожают стабильности вашей сборки.[ПРЕДУПРЕЖДЕНИЕ] [ПРЕДУПРЕЖДЕНИЕ] По этой причине будущие версии Maven могут больше не поддерживать создание таких некорректных проектов.[ПРЕДУПРЕЖДЕНИЕ] [ИНФО] [ИНФО] ------------------------------------------------------------------------ [INFO] Building TestOptional 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ Скачивание: http://maven/artifactory/libs-snapshot/org/codehaus/mojo/exec-maven-plugin/maven-metadata.xml Скачивание: http://maven/artifactory/libs-snapshot/org/codehaus/mojo/exec-maven-plugin/maven-metadata.xml Скачивание: http://maven/artifactory/libs-snapshot/org/codehaus/mojo/exec-maven-plugin/maven-metadata.xml (873 B при 0,2 КБ / с) Скачивание: http://maven/artifactory/libs-snapshot/org/codehaus/mojo/exec-maven-plugin/maven-metadata.xml (873 B при 0,2 КБ / с) Загрузка: http://maven/artifactory/libs-snapshot/org/openjdk/jmh/jmh-core/1.21/jmh-core-1.21.pom Загрузка: http://maven/artifactory/libs-snapshot/org/openjdk/jmh/jmh-core/1.21/jmh-core-1.21.pom [ПРЕДУПРЕЖДЕНИЕ] POM для org.openjdk.jmh: jmh-core: jar: 1.21 isотсутствует, информация о зависимостях недоступна Скачивание: http://maven/artifactory/libs-snapshot/org/openjdk/jmh/jmh-generator-annprocess/1.21/jmh-generator-annprocess-1.21.pom Скачивание:http://maven/artifactory/libs-snapshot/org/openjdk/jmh/jmh-generator-annprocess/1.21/jmh-generator-annprocess-1.21.pom
[ПРЕДУПРЕЖДЕНИЕ] POM для
org.openjdk.jmh: jmh-generator-annprocess: jar: 1.21 отсутствует, нет
доступна информация о зависимостях
http://maven/artifactory/libs-snapshot/org/openjdk/jmh/jmh-core/1.21/jmh-core-1.21.jar
Загрузка:
http://maven/artifactory/libs-snapshot/org/openjdk/jmh/jmh-generator-annprocess/1.21/jmh-generator-annprocess-1.21.jar
Загрузка:
http://maven/artifactory/libs-snapshot/org/openjdk/jmh/jmh-generator-annprocess/1.21/jmh-generator-annprocess-1.21.jar
Загрузка:
http://maven/artifactory/libs-snapshot/org/openjdk/jmh/jmh-core/1.21/jmh-core-1.21.jar
[ИНФОРМАЦИЯ]
-------------------------------------------------- ---------------------- [INFO] СБОЙ СТРОИТЕЛЬСТВА [INFO]
-------------------------------------------------- ---------------------- [INFO] Общее время: 17.150 с [INFO] Завершено в:
2019-04-10T14: 57: 16 + 05: 30 [INFO] Окончательная память: 7M / 125M [INFO]
-------------------------------------------------- ---------------------- [ОШИБКА] Не удалось выполнить цель в проекте TestOptional: не удалось
разрешить зависимости для проекта
Вишваратна: TestOptional: jar: 1.0-SNAPSHOT: следующие артефакты
невозможно решить d: org.openjdk.jmh: jmh-core: jar: 1.21,
org.openjdk.jmh: jmh-generator-annprocess: jar: 1.21: не удалось найти
Артефакт org.openjdk.jmh: jmh-core: jar: 1.21 in art_all
(http://maven/artifactory/li bs-снимок)
Это показывает, что у меня нет никаких проблем proxy . Теперь, когда я нажал на любую ссылку JMH в браузере, я получил ответ json, пример:
Ссылка: http://maven/artifactory/libs-snapshot/org/openjdk/jmh/jmh-core/1.21/jmh-core-1.21.jar
Сообщение:
{
"errors" : [ {
"status" : 404,
"message" : "Could not find resource"
} ]
}
Настройки XML
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>C:\GBO_ROOT\Repo</localRepository>
<servers>
<server>
<id>TomcatServer</id>
<username>admin</username>
<password>password</password>
</server>
</servers>
<mirrors>
<mirror>
<id>art_central</id>
<name>Artifactory Mirror of Central</name>
<url>http://maven/artifactory/libs-snapshot</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>art_all</id>
<name>Artifactory Mirror of Central</name>
<url>http://maven/artifactory/libs-snapshot</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>artifactory</id>
<repositories>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>http://maven/artifactory/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>plugins-snapshot</name>
<url>http://maven/artifactory/plugins-snapshot</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>
Настройка Artifactory xml:
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<localRepository>C:/EMA_ROOT/snapshotviews/repo</localRepository>
<mirrors>
<mirror>
<id>art_central</id>
<name>Artifactory Mirror of Central</name>
<url>http://maven/artifactory/libs-snapshot</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>art_all</id>
<name>Artifactory Mirror of Central</name>
<url>http://maven/artifactory/libs-snapshot</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>artifactory</id>
<repositories>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>http://maven/artifactory/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>plugins-snapshot</name>
<url>http://maven/artifactory/plugins-snapshot</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>