我是Maven的新手,我有以下问题。我有一个项目A,我已将其作为依赖项添加到另一个项目中。
这是我添加到我的pom中的内容
timestamp
在Eclipse中一切正常,但是当我尝试打开jar文件时,我收到了这条消息:
</build>
<dependencies>
<dependency>
<groupId>the id</groupId>
<artifactId>artifact id</artifactId>
<version> the version</version>
<scope>compile</scope>
</dependency>
那我错过了什么? 任何建议都会有所帮助
答案 0 :(得分:0)
Eclipse在后台自动完成自己的编译。结果是您的依赖项的jar文件可能在Eclipse中可用,但在本地maven存储库中不可用。尝试运行&#34; maven clean install&#34;首先在本地依赖的终端中(这会将它添加到您的本地maven存储库中),然后使用另一个&#34; maven clean install&#34;来构建您的下游项目。
这将在&#34; target&#34;中创建一个jar文件。 maven项目根目录下的目录。
答案 1 :(得分:0)
如果要将应用程序运行为:
java -jar yourapp.jar
你已经处理好两件事:
确保您在MANIFEST.MF中列出了您的主要课程,我相信您已经这样做了。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>your.package.YourMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
确保在运行应用程序时,您的类路径已正确构建。有几种方法可以做到这一点,但最简单的方法是使用shade插件。它将解压缩所有依赖项并将它们放入一个jar中。
<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>
</execution>
</executions>
</plugin>
如果您在不使用阴影插件的情况下需要其他解决方案,请告诉我。