我最近开始与这个小组合作进行java开发。他们使用maven和svn来管理他们所有的代码,我对maven没有任何真正的经验,所以我试图追赶。从我所看到的,如果你要修改他们的一个项目,你用svn检查它,然后在pom.xml中乱用20分钟,然后你可以使用mvn install或其他任何东西来构建它。我们有一个内部存储库,并且所有项目都对存储库中的代码有很多依赖关系,所以我几乎每次都使用maven来构建。由于依赖性,从maven生成eclipse项目不起作用。
令我感到沮丧的是,似乎没有一种好的方法来运行代码或调试代码。 Maven正在生成只能由maven执行的jar文件,因为manifest.mf文件没有到main函数的正确路径,等等.Java -jar不会对它们起作用。
就调试而言,我今天花了大部分时间在谷歌试图找出一种方法来使用eclipse来逐步完成我的代码,但显然这是不可能完成的。我试图用surefire插件设置一些远程调试,但是你必须为那个或者某些东西编写单元测试,这对于我的目的来说太过分了。在我之前的java体验中,我们使用了svn,ant和eclipse,这简单得多。
无论如何,有经验的人可以给我一些关于使用maven作为构建工具进行开发的技巧吗?问我的同事一般都没有帮助。我觉得maven可能是一个很好的工具,我几乎什么都不知道,如果没有能够逐步调试我的代码,我就无法完成任何工作。
答案 0 :(得分:3)
使用Eclipse开发maven项目时,使用m2e plugin - 或直接从Eclipse Marketplace安装(即通过菜单)
它会自动处理依赖项,构建路径,类路径,环境设置等 - 在这里你可以learn more about it
答案 1 :(得分:0)
开发Maven POM文件可能很复杂,如果它有很多工作,但一旦编写完毕,它应该非常容易构建和使用项目。令人不安的是,您的同事无法向您解释如何使用基于Maven的项目。
如果你在Eclipse中,m2e插件绝对是你要走的路。您可以对您的内容进行单步调试,您可以忽略该项目完全基于Maven。
如果你真的想构建和使用jar文件,我会使用maven-shade-plugin
来构建一个包含所有依赖项的über-jar文件。 (这通常不是你要分发的那种东西,但是当你只想要一个简单的jar文件来进行命令行工作时,这太棒了。)要使用shade插件,你可以将它添加到<plugins>
部分你的POM:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>you.main.class.GoesHere</mainClass>
</transformer>
</transformers>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals><goal>shade</goal></goals>
</execution>
</executions>
</plugin>
然后运行
mvn package
在命令行上