Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven中的war项目依赖性_Java_Maven - Fatal编程技术网

Java maven中的war项目依赖性

Java maven中的war项目依赖性,java,maven,Java,Maven,我需要将war项目中的一个bean类访问到另一个war项目中。该bean类存在于MyProject中。我为另一个名为NewProject的项目编写了pom,如下所示 <groupId>MyProject</groupId> <artifactId>MyProject</artifactId> <version>1</version> </parent> <artifactId>MyP

我需要将war项目中的一个bean类访问到另一个war项目中。该bean类存在于MyProject中。我为另一个名为NewProject的项目编写了pom,如下所示

<groupId>MyProject</groupId>
    <artifactId>MyProject</artifactId>
    <version>1</version> 
</parent>
<artifactId>MyProject</artifactId>
<packaging>war</packaging>
MyProject
我的项目
1.
我的项目
战争

是否可以在另一个war项目中添加war依赖项?

依赖项使用jar工作,您通常会在
.jar
文件中定义一个公共依赖项,该文件可由
.war
访问。这不是Maven特有的,而是Java中依赖项的工作方式。
.war
的内部结构在类的布局上与.jar不同

因此,在Maven中,我希望定义一个
.jar
项目,然后根据初始项目定义两个
.war
项目。

如果使用以下属性配置:

<attachClasses>true</attachClasses>
true
您将获得具有以下坐标的补充工件:


myGroup
我的神器
我的版本
班级

包含war项目中的所有类,这些类可以用作依赖项,这是一个jar文件,可以解决您的问题。

您最好使用项目中需要的
war
类创建
jar

然后只需将依赖项添加到项目配置中(
classifier
classes)


org.apache.maven.plugins
maven jar插件
班级
编译
罐子
班级
在您的war项目中

<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
    <attachClasses>true</attachClasses>
</configuration></plugin>


希望它有助于……

将您的可重用类移动到一个单独的模块中。这将有助于:

  • 更快地进行测试

  • 将代码用作其他项目中的依赖项


或者,您可以通过使用
maven-jar插件
并生成基于分类器的工件来生成一个只包含类的jar。然而,我认为我的建议更好,因为它给了您一个明确的代码分离,并迫使您更好地组织代码

请参见@ArnaudDenoyelle给定问题与此处的问题无关。问题是关于可传递的依赖关系,但这里不是这样。
现在接受您的项目
。。。?我不知道你想说什么。你能纠正这个吗?它创建了一个类工件,你可以在所需的项目中使用它。阅读引用的句子。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
    <attachClasses>true</attachClasses>
</configuration></plugin>
<dependency>
<groupId>your-group-id</groupId>
<artifactId>your-artifact-id</artifactId>
<version>your-version</version>
<classifier>classes</classifier>