使用Maven为我的两个模块添加一个公共文件夹

时间:2016-11-11 13:44:29

标签: java maven

我有一个Maven构建,它有两个模块(服务器/客户端),我希望创建一个包含共享方法的文件夹。

为了成功构建,我应该向pom.xml添加什么? 我有3个pom,项目根目录中有一个pom,另外两个分别位于server文件夹和client文件夹中。

这是我的父pom.xml

  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.christopher.kade</groupId>
  <artifactId>jcoinche</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>jcoinche</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <modules>
    <module>client</module>
    <module>server</module>
  </modules>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-all</artifactId> <!-- Use 'netty-all' for 4.0 or above -->
      <version>4.1.6.Final</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

</project>

2 个答案:

答案 0 :(得分:1)

您应该将您在客户端和服务器中的类放在第三个模块中。 然后在客户端和服务器模块中添加依赖项。

答案 1 :(得分:0)

你可以做类似的事情。在主(父)pom.xml中,添加模块及其依赖项。

<modules>
 <module>client</module>
 <module>server</module>
 <module>jcoinche-common</module>
</modules>

<dependencies>
..
..
<dependency>
   <groupId>com.christopher.kade</groupId>
   <artifactId>jcoinche-common</artifactId>
   <version>${project.version}</version>
   <!--       ^=== assumes same version as project      -->
</dependency>
..
..

然后,在需要jcoinche-common模块的子模块中,只需添加一个依赖项:

<dependency>
   <groupId>com.christopher.kade</groupId>
   <artifactId>jcoinche-common</artifactId>
</dependency>

多数民众赞成。