我使用Apache来管理我的Java库(jar)和一些使用libs的项目。为了方便起见,我使用mvn eclipse:eclipse生成Eclipse文件,这些文件可以导入Eclipse工作区进行编辑。
在同一个Eclipse工作区中编辑主项目和Java项目时会出现问题。也就是说,mvn eclipse:eclipse在.classpath文件中包含src路径依赖项,而不是预期的jar依赖项。
假设我有一个名为mylib的Jave项目。相应的jar文件mylib.jar已经部署到我维护的私有Maven回购中。为了在主项目中使用mylib.jar,pom.xml中包含了以下依赖项。
<!-- pom.xml for the main project -->
<dependency>
  <groupId>namespace.my</groupId>
  <artifactId>mylib</artifactId>
  <version>[1.0, )</version>
</dependency>mvn compile和mvn test工作得很完美,其中mylib.jar是从我的回购中自动下载的。但是,在尝试mvn eclipse:eclipse时,我发现生成的.classpath文件不像预期的那样包含mylib.jar依赖项。相反,它包含mylib的源文件目录,如下所示。
<!-- .classpath file generated by mvn eclipse:eclipse -->
<classpathentry kind="src" path="/mylib"/>Maven似乎读取Eclipse的元数据,并在同一个工作区中找到mylib和主项目共存。因此,maven包含了我的好消息来源。见鬼。我如何告诉maven忽略本地项目源,只包含jar文件?
发布于 2012-09-25 08:07:23
谢谢猎犬的提示。是的,useProjectReferences控制Maven如何处理子项目--包括源dir或包含jar文件。
我还没有为Eclipse安装maven插件,所以我在pom.xml中添加了以下配置。它告诉Maven在本地maven repo中包含jar依赖项,而不是源dir。如果本地回购中不存在所需的jar文件,则将自动下载该文件。
  <!-- pom.xml for the main project: include jar, not src path -->
  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.9</version>
    <configuration>
            <useProjectReferences>false</useProjectReferences>
    </configuration>
  </plugin>现在,mvn eclipse:eclipse按预期工作。
https://stackoverflow.com/questions/12577175
复制相似问题