![](/img/trans.png)
[英]Maven How to use dependencies of a jar project defined as a dependency of a war project
[英]war project dependency in maven
我需要从war项目中访问一个bean类到我的另一个war项目中。 bean类存在于MyProject中。 我写了另一个名为NewProject的项目的pom,如下所示。
<groupId>MyProject</groupId>
<artifactId>MyProject</artifactId>
<version>1</version>
</parent>
<artifactId>MyProject</artifactId>
<packaging>war</packaging>
是否有可能在另一个战争项目中添加战争依赖?
如果使用以下属性配置maven-war-plugin :
<attachClasses>true</attachClasses>
你会得到一个带有以下坐标的补充神器:
<dependency>
<groupId>myGroup</groupId>
<artifactId>myArtifact</artifactId>
<version>myVersion</myVersion>
<classifier>classes</classifier>
</dependency>
它包含war项目中的所有类,可以用作依赖项,这是一个可以解决问题的jar文件。
在你的战争项目中
<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>
希望能帮助到你...
依赖关系使用jar工作,你通常会在.jar
文件中定义一个公共依赖项,可以被.war
s访问。 这不是特定于Maven的,而是Java中的依赖关系如何工作。 .war
的内部结构在类的布局方面与.jar不同。
因此,在Maven中,我希望定义一个.jar
项目,然后根据初始项目定义两个.war
项目。
你最好用你的项目中需要的war
类创建一个jar
。
然后只需将依赖项添加到项目配置( classifier
类)。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>classes</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>classes</classifier>
</configuration>
</execution>
</executions>
</plugin>
将可重复使用的类移动到单独的模块中。 这将有助于:
更快地测试。
将代码用作其他项目中的依赖项。
或者,您可以通过使用maven-jar-plugin
生成基于maven-jar-plugin
并生成基于分类器的工件。 但是,我认为我的建议更好,因为它可以让您清楚地分离代码并强制您更好地组织代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.