Jia*_* W. 14 java eclipse maven
我使用Apache Maven来管理我的Java库(jar)和一些使用libs的项目.为了方便起见,我使用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>
Run Code Online (Sandbox Code Playgroud)
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"/>
Run Code Online (Sandbox Code Playgroud)
似乎Maven读取Eclipse的元数据并找到mylib并且主项目在同一工作区中共存.因此,maven包含了我的好处.该死的.如何告诉maven忽略本地项目源并只包含jar文件?
Jam*_*ett 12
我相信这实际上是因为它们是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>
Run Code Online (Sandbox Code Playgroud)
或者作为命令行上的属性:
mvn eclipse:eclipse -Declipse.useProjectReferences=false
Run Code Online (Sandbox Code Playgroud)
Pan*_*ciz 11
我需要避免将依赖项包含为refrenced项目,而是作为jar.使用Eclipse 4.6 Neon以前的解决方案都不起作用.
我已禁用该Workspace Resolution
功能
click on the project -> Maven -> Disable Workspace Resolution
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
31367 次 |
最近记录: |