我正在Windows上使用java -jar "/path-to-jar/myfile.jar"
运行maven项目(.jar文件),但找不到org/springframework/context/annotation/AnnotationConfigApplicationContext
。
我是否需要将像spring这样的依赖项添加到pom.xml的<build>
部分或者确保它们包含在.jar中?
答案 0 :(得分:0)
通常,您不会在应用程序jar中包含库jar(不使用自定义类加载器或One-JAR)。相反,将-classpath
java命令行参数设置为:
- 用于编译/构建jar文件的分隔jar文件。所以你的命令看起来像
java -classpath .:lib/spring.jar:lib/spring-context.jar:lib/others.jar -jar "/path-to-jar/myfile.jar"
答案 1 :(得分:0)
我花了一段时间才找到,但Maven构建插件是我需要的......
<build>
<plugins>
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.production.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>tar-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>com.production.Main</mainClass>
</manifest>
</archive>
<finalName>myapp</finalName>
<descriptorRefs>
<descriptorRef>with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>