Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将作用域更改为运行时后,依赖项消失_Java_Maven_Dependencies - Fatal编程技术网

Java 将作用域更改为运行时后,依赖项消失

Java 将作用域更改为运行时后,依赖项消失,java,maven,dependencies,Java,Maven,Dependencies,我需要在运行时范围内使用一些jar依赖项,但是在pom.xml中更改它之后,这个依赖项从依赖项列表中消失了。此依赖项中的类在编译和运行期间使用,因此我需要此依赖项位于运行时范围。如果在编译中使用依赖项中的类,则需要“编译”范围。运行时依赖项不在编译类路径中。如果在编译时需要依赖项中的类,则应使用默认的compilescope 为了运行应用程序,您需要所有依赖JAR都位于类路径上。您可以通过各种方式使用Maven来实现这一点,但正确的范围仍然是您可能想了解的compile。默认范围是compile

我需要在运行时范围内使用一些jar依赖项,但是在pom.xml中更改它之后,这个依赖项从依赖项列表中消失了。此依赖项中的类在编译和运行期间使用,因此我需要此依赖项位于运行时范围。

如果在编译中使用依赖项中的类,则需要“编译”范围。运行时依赖项不在编译类路径中。

如果在编译时需要依赖项中的类,则应使用默认的
compile
scope


为了运行应用程序,您需要所有依赖JAR都位于类路径上。您可以通过各种方式使用Maven来实现这一点,但正确的范围仍然是您可能想了解的
compile

。默认范围是
compile
,除非绝对必须更改,否则不应更改该范围

  • 编译-这是默认范围,如果未指定,则使用。编译依赖项在所有类路径中都可用

  • 运行时-此范围表示编译时不需要依赖项,但执行时需要依赖项。它位于运行时和测试类路径中,但不在编译类路径中


在项目中运行某些类的最简单方法是使用


这很简单,您不必考虑类路径设置。

那么,在编译和运行时是否可以使用依赖关系?是的。“compile”作用域依赖项位于编译和运行时类路径中,但为什么我在尝试从编译的jar运行类时遇到“NoClassDefFound”异常?您如何运行您的程序?java-cp“CLASSPATH”Application-args
<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>com.example.Main</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>
mvn package exec:java