Maven은 테스트 범위를 사용할 때 테스트 클래스를 컴파일 할 수 없습니다.

Dodopriester

나는 현재 Minecraft Plugin을 테스트 하기 위해 MockBukkit 을 사용하려고 시도 하고 있으며 테스트 범위와 함께 내 pom에 포함 시켰습니다. 그러나 문제는 테스트 범위를 사용할 때 종속성이 내 로컬 저장소에 나타나지만 eclipse 또는 Maven으로 해결할 수 없다는 것입니다.

문제는 컴파일러 플러그인 의 기본 컴파일 목표가 테스트 단계에서만 사용할 수 있으므로 종속성을 사용할 수 없더라도 테스트 클래스를 컴파일하려고한다는 것입니다. (그러나 그것은 내 추측 일뿐입니다).

Maven 출력 :

[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ CityCraft ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 32 source files to C:\Users\lptoa\Desktop\MC Plugins\CityCraft\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/lptoa/Desktop/MC Plugins/CityCraft/src/test/java/skyvide/de/city/CityTests.java:[3,32] package be.seeseemelk.mockbukkit does not exist
[ERROR] /C:/Users/lptoa/Desktop/MC Plugins/CityCraft/src/test/java/skyvide/de/city/CityTests.java:[4,32] package be.seeseemelk.mockbukkit does not exist
[ERROR] /C:/Users/lptoa/Desktop/MC Plugins/CityCraft/src/test/java/skyvide/de/city/CityTests.java:[9,17] cannot find symbol
  symbol:   class ServerMock
  location: class test.java.skyvide.de.city.CityTests
[ERROR] /C:/Users/lptoa/Desktop/MC Plugins/CityCraft/src/test/java/skyvide/de/city/CityTests.java:[12,10] cannot find symbol
  symbol:   class Before
  location: class test.java.skyvide.de.city.CityTests
[ERROR] /C:/Users/lptoa/Desktop/MC Plugins/CityCraft/src/test/java/skyvide/de/city/CityTests.java:[19,10] cannot find symbol
  symbol:   class After
  location: class test.java.skyvide.de.city.CityTests
[ERROR] /C:/Users/lptoa/Desktop/MC Plugins/CityCraft/src/test/java/skyvide/de/city/CityTests.java:[15,22] cannot find symbol
  symbol:   variable MockBukkit
  location: class test.java.skyvide.de.city.CityTests
[ERROR] /C:/Users/lptoa/Desktop/MC Plugins/CityCraft/src/test/java/skyvide/de/city/CityTests.java:[16,34] cannot find symbol
  symbol:   variable MockBukkit
  location: class test.java.skyvide.de.city.CityTests
[ERROR] /C:/Users/lptoa/Desktop/MC Plugins/CityCraft/src/test/java/skyvide/de/city/CityTests.java:[22,13] cannot find symbol
  symbol:   variable MockBukkit
  location: class test.java.skyvide.de.city.CityTests

위치:

->src
 --->test
    --->java
      --->example
        --->ExampleTest.java

암호:

package test.java.example;

import be.seeseemelk.mockbukkit.MockBukkit;
import be.seeseemelk.mockbukkit.ServerMock;
import main.plugin;

public class ExampleTest {
    
    private ServerMock server;
    private Plugin plugin;

    @Before
    public void setUp()
    {
        server = MockBukkit.mock();
        plugin = (Plugin) MockBukkit.load(Plugin.class);
    }

    @After
    public void tearDown()
    {
        MockBukkit.unmock();
    }
}

POM :

<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>sv-plugins</groupId>
  <artifactId>CityCraft</artifactId>
  <version>1.0</version>
  <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <profiles>
    <profile>
        <id>testing</id>
        <activation>
            <property>
                <name>test.output.dir</name>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.3.1</version>
                    <configuration>
                      <outputDirectory>${test.output.dir}</outputDirectory>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
  </profiles>
  <repositories>
    <repository>
        <id>papermc</id>
        <url>https://papermc.io/repo/repository/maven-public/</url>
    </repository>
    <repository>
        <id>spigot-repo</id>
        <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
    </repository>
    <repository>
        <id>everything</id>
        <url>https://repo.citizensnpcs.co/</url>
    </repository>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
    <repository>
        <id>aikar</id>
        <url>https://repo.aikar.co/content/groups/aikar/</url>
    </repository>
  </repositories>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
      <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.3</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <artifactSet>
                        <includes>
                            <include>com.github.WesJD.AnvilGUI:anvilgui</include>
                            <include>co.aikar:acf-paper</include>
                        </includes>
                    </artifactSet>
                </configuration>
            </execution>
        </executions>
      </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
  </build>
  <dependencies>
  <dependency>
    <groupId>com.destroystokyo.paper</groupId>
    <artifactId>paper-api</artifactId>
    <version>1.15.2-R0.1-SNAPSHOT</version>
    <scope>provided</scope>
 </dependency>
  <dependency>
    <groupId>net.citizensnpcs</groupId>
    <artifactId>citizens</artifactId>
    <version>2.0.27-SNAPSHOT</version>
    <type>pom</type>
    <scope>provided</scope>
  </dependency>
  <dependency>
    <groupId>sv-plugins</groupId>
    <artifactId>MySQL</artifactId>
    <version>1.0</version>
    <scope>provided</scope>
  </dependency>
  <dependency>
    <groupId>sv-plugins</groupId>
    <artifactId>Clouds</artifactId>
    <version>1.0</version>
    <scope>provided</scope>
  </dependency>
  <dependency>
    <groupId>com.github.WesJD.AnvilGUI</groupId>
    <artifactId>anvilgui</artifactId>
    <version>master-SNAPSHOT</version>
  </dependency>
  <dependency>
    <groupId>co.aikar</groupId>
    <artifactId>acf-paper</artifactId>
    <version>0.5.0-SNAPSHOT</version>
  </dependency>
  <dependency>
    <groupId>com.github.seeseemelk</groupId>
    <artifactId>MockBukkit-v1.16</artifactId>
    <version>0.5.0</version>
    <scope>test</scope>
  </dependency>
  </dependencies>
</project>
Dodopriester

좋아요, 오류는 방금 기본 이클립스 프로젝트를 Maven 프로젝트로 변환했기 때문에 .classpath를 변경해야했기 때문에 빌드 경로에서 기본 src 폴더를 제거하고 다른 Maven 폴더를 추가해야했습니다. 그것 없이는 Maven은 모든 클래스를 실패하게 만든 테스트가 아닌 일반 클래스로 컴파일하려고했습니다.

누군가가 관심이있는 경우 두 .classpath 파일 간의 비교는 다음과 같습니다.

낡은:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
        <attributes>
            <attribute name="module" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry including="**/*.java" kind="src" output="target/classes" path="src">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

새로운:

<classpath>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
        <attributes>
            <attribute name="module" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" path="src/main/java"/>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java">
        <attributes>
            <attribute name="test" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" path="src/main/resources"/>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

구축 할 때 Maven은 내 테스트 테스트 클래스를 찾을 수 없습니다

분류에서Dev

셀레늄을 사용할 때 Tomcat이 클래스를 컴파일 할 수 없습니다.

분류에서Dev

내 UVM 클래스를 컴파일 할 수 없습니다.

분류에서Dev

Gradle 테스트를 사용할 때 주어진 포함에 대한 테스트를 찾을 수 없습니다.

분류에서Dev

파생 클래스를 테스트 할 때 기본 메서드를 어떻게 모의 할 수 있습니까?

분류에서Dev

Pycharm은 테스트를 실행할 때 Django 앱 '사용자'를 찾을 수 없습니다.

분류에서Dev

오류 : 기본 클래스를 찾거나로드 할 수 없습니다. 이것은 코드를 컴파일 할 때 발생합니다.

분류에서Dev

컴파일 오류 : 클래스를 인스턴스화 할 수 없습니다.

분류에서Dev

React 후크를 사용할 때 부트 스트랩 테이블을 다시 렌더링 할 수 없습니다.

분류에서Dev

Jetty에서 JSP 용 클래스를 컴파일 할 수 없습니다.

분류에서Dev

maven sure fire (POJO) 테스트를 실행할 수 없습니다.

분류에서Dev

Maven에서 Cucumber 테스트를 실행할 수 없습니다.

분류에서Dev

Jest는 테스트를 실행할 때 TypeScript TSX 파일을 처리 할 수 없습니다.

분류에서Dev

Junit 테스트가 LocalServiceTestHelper를 사용하여 파일 시스템에 액세스 할 수 없습니다.

분류에서Dev

IntelliJ는 JUnit 테스트 클래스를 실행할 수 없습니다.

분류에서Dev

메인 클래스 테스트를 찾거나로드 할 수 없습니다.

분류에서Dev

메인 클래스 테스트를 찾거나로드 할 수 없습니다.

분류에서Dev

AngularJS 테스트-ngGrid를 사용할 수 없습니다.

분류에서Dev

클래스를 토글 할 때 다른 값으로 동일한 CSS 속성을 사용할 수 없습니다.

분류에서Dev

독립형 karate.jar로 테스트를 실행할 때 read ( 'classpath :')를 사용할 수 없습니다.

분류에서Dev

NSubstitute로받은 ILogger <T>를 테스트 할 수 없습니다.

분류에서Dev

Nhibernate 단위 테스트. 자식 클래스는 기본 클래스 속성을 사용할 수 없습니다.

분류에서Dev

Robolectric은 둘 이상의 테스트를 실행할 때 사용자 정의 및 테스트 애플리케이션 클래스를 무시합니다.

분류에서Dev

Jest로 테스트를 실행할 때 uuid 모듈을 사용할 수 없습니다.

분류에서Dev

scalatest를 사용하여 akka를 테스트 할 때 테스트 케이스를 찾을 수 없습니다. 수정하려면 어떻게해야합니까?

분류에서Dev

프로 토크 생성 (C ++) 클래스를 컴파일 할 수 없습니다.

분류에서Dev

Firebase In App Messaging 플러그인을 사용할 때 Flutter가 프로젝트를 컴파일 할 수 없습니다.

분류에서Dev

Gradle을 사용하여 더미 클래스를 컴파일 할 수 없습니다.

분류에서Dev

GeoTools를 사용할 때 FactoryRegistry 클래스를 찾을 수 없습니다.

Related 관련 기사

  1. 1

    구축 할 때 Maven은 내 테스트 테스트 클래스를 찾을 수 없습니다

  2. 2

    셀레늄을 사용할 때 Tomcat이 클래스를 컴파일 할 수 없습니다.

  3. 3

    내 UVM 클래스를 컴파일 할 수 없습니다.

  4. 4

    Gradle 테스트를 사용할 때 주어진 포함에 대한 테스트를 찾을 수 없습니다.

  5. 5

    파생 클래스를 테스트 할 때 기본 메서드를 어떻게 모의 할 수 있습니까?

  6. 6

    Pycharm은 테스트를 실행할 때 Django 앱 '사용자'를 찾을 수 없습니다.

  7. 7

    오류 : 기본 클래스를 찾거나로드 할 수 없습니다. 이것은 코드를 컴파일 할 때 발생합니다.

  8. 8

    컴파일 오류 : 클래스를 인스턴스화 할 수 없습니다.

  9. 9

    React 후크를 사용할 때 부트 스트랩 테이블을 다시 렌더링 할 수 없습니다.

  10. 10

    Jetty에서 JSP 용 클래스를 컴파일 할 수 없습니다.

  11. 11

    maven sure fire (POJO) 테스트를 실행할 수 없습니다.

  12. 12

    Maven에서 Cucumber 테스트를 실행할 수 없습니다.

  13. 13

    Jest는 테스트를 실행할 때 TypeScript TSX 파일을 처리 할 수 없습니다.

  14. 14

    Junit 테스트가 LocalServiceTestHelper를 사용하여 파일 시스템에 액세스 할 수 없습니다.

  15. 15

    IntelliJ는 JUnit 테스트 클래스를 실행할 수 없습니다.

  16. 16

    메인 클래스 테스트를 찾거나로드 할 수 없습니다.

  17. 17

    메인 클래스 테스트를 찾거나로드 할 수 없습니다.

  18. 18

    AngularJS 테스트-ngGrid를 사용할 수 없습니다.

  19. 19

    클래스를 토글 할 때 다른 값으로 동일한 CSS 속성을 사용할 수 없습니다.

  20. 20

    독립형 karate.jar로 테스트를 실행할 때 read ( 'classpath :')를 사용할 수 없습니다.

  21. 21

    NSubstitute로받은 ILogger <T>를 테스트 할 수 없습니다.

  22. 22

    Nhibernate 단위 테스트. 자식 클래스는 기본 클래스 속성을 사용할 수 없습니다.

  23. 23

    Robolectric은 둘 이상의 테스트를 실행할 때 사용자 정의 및 테스트 애플리케이션 클래스를 무시합니다.

  24. 24

    Jest로 테스트를 실행할 때 uuid 모듈을 사용할 수 없습니다.

  25. 25

    scalatest를 사용하여 akka를 테스트 할 때 테스트 케이스를 찾을 수 없습니다. 수정하려면 어떻게해야합니까?

  26. 26

    프로 토크 생성 (C ++) 클래스를 컴파일 할 수 없습니다.

  27. 27

    Firebase In App Messaging 플러그인을 사용할 때 Flutter가 프로젝트를 컴파일 할 수 없습니다.

  28. 28

    Gradle을 사용하여 더미 클래스를 컴파일 할 수 없습니다.

  29. 29

    GeoTools를 사용할 때 FactoryRegistry 클래스를 찾을 수 없습니다.

뜨겁다태그

보관