Java Maven向项目添加依赖项
在eclipse中,您可以轻松地将依赖项(即JAR文件)添加到您的项目中。 右键单击项目,然后单击->构建路径->添加库 现在,在项目“.classpath”中创建了一个隐藏文件。 该文件中添加了一个classpathEntry,因此现在我可以通过将其添加到java文件中来使用这些库:Java Maven向项目添加依赖项,java,maven,jar,dependencies,Java,Maven,Jar,Dependencies,在eclipse中,您可以轻松地将依赖项(即JAR文件)添加到您的项目中。 右键单击项目,然后单击->构建路径->添加库 现在,在项目“.classpath”中创建了一个隐藏文件。 该文件中添加了一个classpathEntry,因此现在我可以通过将其添加到java文件中来使用这些库: import foo.bar.*; 这个“应用程序”现在可以导出到单个jar中 在没有eclipse的情况下,如何使用Maven实现这一点? 我切换到emacs…:) 使用命令: mvn archetype:g
import foo.bar.*;
这个“应用程序”现在可以导出到单个jar中
在没有eclipse的情况下,如何使用Maven实现这一点?
我切换到emacs…:)
使用命令:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-cli -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
我给自己准备了一个启动应用程序示例。
src文件夹中有一个App.java文件,在命令行上写着“helloworld”
通过pom.xml中的以下内容,我成功地在我的项目(maven独立部署)中获得了一个jar:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.mycompany.third-party</groupId>
<artifactId>commons-cli-archetype</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
<overWrite>false</overWrite>
<!--${project.basedir} ${project.build.directory} -->
<outputDirectory>${project.basedir}/resources/repo</outputDirectory>
<destFileName>optional-new-name.jar</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>${project.basedir}/resources/repo</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
manifest.MF仍然为空。+1表示不使用eclipse;^) 如果您希望引用另一个JAR中的代码,请尝试将以下内容添加到POM中:
<dependencies>
<dependency>
<groupId>xxx</groupId>
<artifactId>yyy</artifactId>
<version>zzz</version>
</dependency>
</dependencies>
xxx
还有一件事,您永远不应该使用.classpath文件。这是Eclipse特有的。更改它不会影响Maven,可能会混淆Eclipse,明白了吗!
我一直遵循本教程,直到第5步。
我没有执行步骤5,而是添加了:
<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>
及
现在它起作用了
所以谢谢你对暴风云的帮助!
发生了什么事?在我的.jar中仍然没有发现任何资源。
罐子被遮住了。
如果我想在没有maven的服务器上导出我的jar呢。那么,如何导出一个完整的工作罐呢
再次感谢 我不清楚你想要实现什么?你想造什么样的罐子?为什么你想在项目中有一个“罐子”?是的。在app.java文件中,我想导入我的jar。并使用它的类。就像使用eclips和向项目中添加库一样,使用Maven可以将JAR安装到本地存储库或将其部署到Nexus/Artifactory。然后在pom文件中引用它们。你不想这样做有什么原因吗?谢谢你的回答。我已经在maven上挣扎了好几天。我可以用什么来代替.classpath。我一直在尝试:。我的emacs没有代码完成。通过这个例子,我很高兴知道了如何使用App.java文件中的导入。但是,对于eclipse.classpath。如果没有它,我如何使用导入?我还有一个错误:“org.dstowall:onejarmaven-plugin:1.4.4或它的一个依赖项无法解析:”。任何人有没有一种简单的非eclipse方法可以做到这一点?是这样吗?joda time joda time${jodatime.version}现在我可以从joda time导入类了?资源在罐子里的什么地方!我试了很多次。我查错文件夹了DYou可以在我之前添加的链接中找到shade插件的XML描述
<dependencies>
<dependency>
<groupId>xxx</groupId>
<artifactId>yyy</artifactId>
<version>zzz</version>
</dependency>
</dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.6</version>
</dependency>
<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>
mvn package
java -jar target/dateutils.jar