4

我最近开始与这个小组一起做 java 开发。他们使用 maven 和 svn 来管理他们所有的代码,而我对 maven 没有任何实际经验,所以我正在努力追赶。从我所见,如果你要修改他们的项目之一,你可以使用 svn 检查它,然后在 pom.xml 中处理依赖项 20 分钟,然后你可以使用 mvn install 或其他方式构建它。我们有一个内部存储库,所有项目都对存储库中的代码有很多依赖关系,所以我几乎每次都使用 maven 来构建。由于依赖关系,从 maven 生成 eclipse 项目不起作用。

真正让我沮丧的是,似乎没有一种运行代码或调试它的好方法。Maven 正在生成只能由 maven 执行的 jar 文件,因为 manifest.mf 文件没有主函数的正确路径等。Java -jar 对它们不起作用。

就调试而言,我今天大部分时间都花在谷歌上,试图找出一种使用 eclipse 单步执行我的代码的方法,但显然这无法完成。我试图使用surefire插件设置远程调试,但你必须为此编写单元测试,或者对我的目的来说太过分了。在我之前的 java 经验中,我们使用了简单得多的 svn、ant 和 eclipse。

无论如何,有更多经验的人可以给我一些关于使用 maven 作为构建工具进行开发的提示吗?问我的同事通常没有帮助。我觉得 maven 可能是一个很棒的工具,我对它几乎一无所知,如果不能单步调试和调试我的代码,我什么都做不了。

4

2 回答 2

4

使用 Eclipse 开发 maven 项目时,使用m2e 插件- 或直接从 Eclipse Marketplace 安装(即通过菜单)

它将自动处理依赖项、构建路径、类路径、环境设置等 - 在这里您可以了解更多信息

于 2013-03-14T02:22:26.770 回答
1

如果要进行很多工作,开发 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

在命令行上

于 2013-03-14T06:25:12.177 回答