Интеллигентная идея: как отладить проект java: fx maven? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть старое приложение javafx, которое я должен запустить, выполнив mvn javafx:run, но теперь я хотел бы отладить его с помощью идеи intellij.

Если я отлаживаю конфигурацию, которую я использую для ее запуска, отладчик подключен, но не останавливается ни на одной точке останова.

Если я пытаюсь запустить команду mvn, такую ​​как mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6666" javafx:run и подключиться к удаленному, я получаю эту ошибку (из отладчика):

java .util.ServiceConfigurationError: com.sun.jdi.connect.Connector: поставщик

sun.jvm.hotspot.jdi.SACoreAttachingConnector не найден java .util.ServiceConfigurationError: com.sun.jdi.connect.Connector: поставщик

sun.jvm.hotspot.jdi.SADebugServerAttachingConnector не найден java .util.ServiceConfigurationError: com.sun.jdi.connect.Connector: поставщик

sun.jvm.hotspot.jdi.SAPID не найден

сервер sa-jdwp подключен

Я не уверен, что мне нужно сделать, чтобы иметь возможность отладить его.

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>groupId</groupId>
<artifactId>ProjectId</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <!-- necessary for intellij to function -->
    <maven.compiler.source>1.11</maven.compiler.source>
    <maven.compiler.target>1.11</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.10</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-graphics</artifactId>
        <version>14-ea+7</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-base</artifactId>
        <version>14-ea+7</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>14-ea+7</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-fxml</artifactId>
        <version>14-ea+7</version>
    </dependency>
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.4.0-b180830.0359</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>2.3.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.4.0-b180830.0438</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>eclipselink</artifactId>
        <version>2.7.6-RC2</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-maven-plugin</artifactId>
            <version>0.0.3</version>
            <configuration>
                <mainClass>project.Main</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

</project>

1 Ответ

0 голосов
/ 21 апреля 2020

Я нашел способ заставить отладку работать, создав отладочное выполнение в pom. xml и затем используя intellij idea для удаленной отладки.

Теперь я могу запустить: mvn clean javafx:run@debug

Новая сборка моего пом. xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-maven-plugin</artifactId>
            <version>0.0.3</version>
            <executions>
                <execution>
                    <id>run</id>
                    <configuration>
                        <mainClass>project.Main</mainClass>
                    </configuration>
                </execution>
                <execution>
                    <id>debug</id>
                    <configuration>
                        <mainClass>project.Main</mainClass>
                        <options>
                            <option>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8000</option>
                        </options>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...