我已使用下面的命令安装了maven依赖
mvn install:install-file -Dfile=d2_lib.war -DgroupId=com.emc.d2fs -DartifactId=d2_lib -Dversion=1.0 -Dpackaging=war -DlocalRepositoryPath="C:\Users\kumarr23\.m2\repository"
我在root pom.xml中添加了这个依赖项,如下所示
<dependency>
<groupId>com.emc.d2fs</groupId>
<artifactId>d2_lib</artifactId>
<version>1.0</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
我可以看到当我在最后的战争中安装罐子的时候, 当我尝试从eclipse导入这些类时,这些类不包含在内,是否有一些我遗漏的东西?
我是maven的新手,我被困在这里! 请指教
答案 0 :(得分:0)
请检查您在运行命令的位置是否有d2_lib.war文件,或者在命令中提及d2_lib.war的完整路径并重试,我相信您指定的命令不是复制战争文件路径未正确定义,您可以通过检查war文件是否复制到本地maven存储库来确认这一点
mvn install:install-file -Dfile = d2_lib.war -DgroupId = com.emc.d2fs -DartifactId = d2_lib -Dversion = 1.0 -Dpackaging = war -DlocalRepositoryPath =“C:\ Users \ kumarr23.m2 \库“
答案 1 :(得分:0)
maven中有一个约定,java代码存在于.jar
文件中,Web类存在于.war
文件中。当您在Web项目中包含war
类型的依赖项时,maven会将包含的文件视为overlay。这基本上意味着maven会将依赖项的内容打包到war文件中,但是它不会像你要查找的那样将java中的库包含在java代码中。
创建war文件时,如果创建者还希望人们获得代码所依据的java代码和传递依赖关系,他们可以使用maven-war-plugin
来设置{{1}的配置标记}}。这将以 artifactId-version-classes.jar 的形式生成一个额外的工件,以及正常的 artifactId-version.war 文件。
如果将war作为叠加层并将类jar包含为普通依赖项,则可以在依赖关系树中看到maven仅从jar文件依赖项中提取传递依赖项,而不是战争。 / p>
在您的情况下,您需要找到类 jar文件,并将其与war文件一起安装在本地maven存储库中。然后你可以将类 jar添加到你的pom.xml中,如下所示:
<attachClasses>true</attachClasses>
<dependency>
<groupId>com.emc.d2fs</groupId>
<artifactId>d2_lib</artifactId>
<version>1.0</version>
<type>war</type>
<scope>runtime</scope>
</dependency>