Eclipse 如何使用Maven编译基本项目并将其复制到多个项目中?
我有一个基本项目,它是我所有常用项目的主要依赖项。所有项目都与Maven一起工作。我正在使用Eclipse。现在,基础项目有一个war和一个jar执行。我在我的公共项目中使用jar作为系统依赖项,如下所示:Eclipse 如何使用Maven编译基本项目并将其复制到多个项目中?,eclipse,maven,ant,war,maven-dependency-plugin,Eclipse,Maven,Ant,War,Maven Dependency Plugin,我有一个基本项目,它是我所有常用项目的主要依赖项。所有项目都与Maven一起工作。我正在使用Eclipse。现在,基础项目有一个war和一个jar执行。我在我的公共项目中使用jar作为系统依赖项,如下所示: <dependency> <groupId>my.group</groupId> <artifactId>base</artifactId> <version>1.
<dependency>
<groupId>my.group</groupId>
<artifactId>base</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/myapproot/WEB-INF/lib/base.jar</systemPath>
</dependency>
我的团队
基础
1
系统
${basedir}/myapproot/WEB-INF/lib/base.jar
如果我对基础进行了一些更改,我需要3个步骤:
可以使用maven或ant文件同时执行所有三个步骤吗?您的公共项目取决于基础项目的工件,其作用域为
system
,并使用systemPath
具有system
范围的依赖项不会从Maven存储库中解析,因此您的公共项目将始终在这里${basedir}/myapproot/WEB-INF/lib/base.jar
查找my.group:base
这解释了为什么必须手动复制基本项目的工件
如果你删除
<scope>system</scope>
<systemPath>${basedir}/myapproot/WEB-INF/lib/base.jar</systemPath>
系统
${basedir}/myapproot/WEB-INF/lib/base.jar
。。。然后,您的公共项目将从Maven存储库中解析my.group:base
。然后,在基本项目上运行mvn install
将my.group:base
安装到您的Maven repo中,您的公共项目将从那里解决它
您仍然需要同时构建基本构件和公共构件(这是有意义的;您更改了某些构件,而构建是使这些构件显化的方式),但您不必手动复制基本构件。这是我的第一次尝试,但由于目前无法重述的原因,我使用了系统依赖项。有没有办法强制编译基依赖项?或者Eclipse中的一个在编辑后自动调用maven的选项?如果您已经用maven构建了它,您是否通过系统范围依赖关系使用它?能否显示my.group Artfact的pom文件?如果您在my.group:base项目上执行了
mvn安装
,则不需要具有系统范围依赖关系。除此之外,您在WEB-INF/lib目录中使用的是什么?我认为hole pom在这里并不是很有趣,它需要一个注释;)我将war文件用于观察和测试平台,我忽略了jar中一些普通项目不需要的类。如果忽略了一些类,则生成的jar完全是错误的,这意味着您应该将其打包为不同的(或者最好单独制作一个模块)。。如果没有pom,很难猜出哪里出了问题。。。