与maven一起发展

时间:2013-03-14 02:14:45

标签: java eclipse maven

我最近开始与这个小组合作进行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可能是一个很好的工具,我几乎什么都不知道,如果没有能够逐步调试我的代码,我就无法完成任何工作。

2 个答案:

答案 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

在命令行上