Не удалось разрешить зависимости для проекта org.openjdk.jmh: jmh-core: jar: 1.21 - PullRequest
2 голосов
/ 10 апреля 2019

Хотел начать делать тестирование методов, которые я буду писать с этого момента, имел долгую мотивацию и, наконец, решил сделать это со вчерашнего дня.Но я был поражен процессом установки.

  • Я правильно установил плагин 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>

1 Ответ

1 голос
/ 10 апреля 2019

Я успешно выполнил ваш пример. Единственное, что мне пришлось изменить, - это положить свой Testing.java в любой пакет, например package t;

.

Если у вас есть какие-либо проблемы с репо, попробуйте, если в вашем файле settings.xml нет странных настроек. https://maven.apache.org/settings.html. Возможно, существует какой-то набор прокси или что-то подобное, что может изменить ожидаемое поведение вашего проекта.

Изменить URL-адреса в settings.xml на https://repo1.maven.org/maven2/

...