我使用Apache Maven管理我的Java库(jar)和一些使用这些库的项目。为了方便起见,我使用mvn eclipse:eclipse
生成Eclipse项目文件,可以将其导入Eclipse工作区进行编辑。
当我在同一Eclipse工作区中编辑主项目和Java lib项目时会出现问题。也就是说,在文件中mvn eclipse:eclipse
包括src路径依赖性.classpath
,而不是jar
预期的依赖性。
假设我有一个名为的Jave lib项目mylib
。相应的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文件?
我相信这实际上是因为它们是Eclipse中的相关项目。因此,如果右键单击主项目并转到Project References
lib项目,则应打勾。
如果运行mvn eclipse:eclipse
,它将自动为任何子项目(模块)添加项目引用。您可以使用Maven Eclipse插件的useProjectReferences属性更改此设置。
默认为true
,但
设置为false时,插件将不会创建子项目,而是使用本地存储库中已安装的包来引用这些子项目。
要使用该属性,请在pom.xml中设置该属性
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<useProjectReferences>false</useProjectReferences>
</configuration>
</plugin>
<plugins>
<build>
或作为命令行上的属性:
mvn eclipse:eclipse -Declipse.useProjectReferences=false
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句