我需要在运行时范围内使用一些 jar 依赖项,但是在 pom.xml 中更改它之后,这个依赖项从依赖项列表中消失了。在编译和运行期间使用此依赖项中的类,因此我需要此依赖项处于运行时范围。
问问题
68 次
3 回答
3
如果您在编译中使用依赖项中的类,则需要“编译”范围。运行时依赖项不在编译类路径中。
于 2012-10-10T10:47:23.867 回答
2
如果您在编译时需要依赖项中的类,那么您应该使用compile
默认范围。
为了运行您的应用程序,您需要将所有依赖的 jars 放在类路径中。您可以通过各种方式使用 Maven 来实现这一点,但正确的范围仍然是compile
.
于 2012-10-10T10:50:49.623 回答
2
您可能想了解Maven Dependency scopes。默认范围是compile
,除非绝对必须,否则您不应更改它。
compile - 这是默认范围,如果没有指定,则使用。编译依赖项在所有类路径中都可用。
运行时- 此范围表示编译不需要依赖项,但需要执行。它在运行时和测试类路径中,但不在编译类路径中。
在项目中运行某些类的最简单方法是使用exec-maven-plugin
.
<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
这很容易,您不必考虑类路径设置。
于 2012-10-10T10:51:00.357 回答