如何告诉Maven包含jar依赖关系,而不是Eclipse中的子项目源目录?

建文W .:

我使用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文件?

詹姆斯·巴塞特(James Bassett):

我相信这实际上是因为它们是Eclipse中的相​​关项目。因此,如果右键单击主项目并转到Project Referenceslib项目,则应打勾。

如果运行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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Maven中处理子项目依赖项

如何在jar中包含子项目类?

如何在多项目Gradle中为子项目定义不同的依赖关系?(Java)

如何排除其他子项目带来的依赖关系?

Maven多模块项目如何包含Gradle子项目?

Maven:如何在父POM中引用子项目的构建目录?

如何为Maven添加额外的源目录以进行编译并将其包含在构建jar中?

如何为具有所有子项目的项目设置依赖关系?

如何在多模块Maven项目中让子项目继承超级项目的依赖版本?

如何将所有子项目的jar放入gradle 4.0中的一个目录?

未解决对子项目中包的依赖关系

如何告诉 Maven 项目在目标文件夹中包含依赖项?

如何在多项目构建中排除其他子项目的传递依赖关系?

如何在Gradle多项目构建的子项目目录中执行命令?

如何从Eclipse中刷新Maven依赖关系?

如何使Maven从本地Maven项目而不是下载中建立依赖关系?

在yarn工作区中,如何为子项目的依赖项强制解决方案?

在Gradle中相互依赖的多模块子项目

如何获取源目录中包含的文件?

如何减少包含输入的离子项目的宽度

集会能否在IterationComboBox中包含子项目的迭代?

Gradle子项目未包含在类路径中

添加额外的Maven依赖关系后如何更新Eclipse项目

如何告诉CMake链接源目录中的静态库?

尽管战争子项目包含最新的jar版本,为什么Maven耳包仍使用项目的旧jar版本?

如何在Maven项目的部署中包含依赖项的测试jar?

Gradle子项目对共享代码的依赖

Gradle子项目构建依赖项

年级子项目和依赖项