1. Загрузка исходного кода
Вилка кода из репозитория github в ваш собственный репозиторийgithub.com/netty/netty, а затем клонировать в локальный. Поскольку netty использует maven для управления проектами, это намного удобнее, чем gradle, просто откройте его с помощью идеи
2. С классом проблем нет
После клонирования кода мы нашли пример io.netty.example.http.websocketx.server.WebSocketServer и приготовились начать отладку.В это время мы обнаружили, что некоторые пакеты в модуле codec-redis сообщают об ошибках.Зайдя в модуль netty-common, я обнаружил, что таких классов нет, но есть заводной скрипт. Войдите в каталог netty-common и запустите mvn compile. найти ошибкуЯ обнаружил, что пакет netty-tools не может быть загружен
3. Решить проблему с dev-инструментами
Мы обнаружили, что netty-common не нуждается в пакете io.netty:netty-dev-tools:jar на этапе компиляции, поэтому в родительском файле pom закомментируйте этот код.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>1.5</version>
<configuration>
<resourceBundles>
<resourceBundle>io.netty:netty-dev-tools:${project.version}</resourceBundle>
</resourceBundles>
<outputDirectory>${netty.dev.tools.directory}</outputDirectory>
<attachToMain>false</attachToMain>
<attachToTest>false</attachToTest>
</configuration>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
</execution>
</executions>
</plugin>
При этом уберите ссылку на dev-tools в pom.xml netty-common
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-dev-tools</artifactId>
<version>${project.version}</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
Затем выполните mvn clean package -Dmaven.test.skip=true под netty-common, выполнение будет успешным, и сгенерированный файл класса будет найден под целью netty-common.
4. Запустить пример
Запускаем io.netty.example.http.websocketx.server.WebSocketServer, программа запускается нормальноДалее можно отлаживать и смотреть исходный код.
Для более интересного контента, пожалуйста, обратите внимание на общедоступный номер