2017-02-15 57 views
0

即时尝试构建一个春季启动maven项目作为战争文件部署在服务器上。春季开机构建为战争,并包括外部模块

我有第二个项目“lib”,其中包含pojo的数据库,并在多个项目中共享。当前我希望打造一个战争项目,但在定义模块时,似乎不可能设置 <packaging>war</packaging> ,它只允许使用pom类型。

<modules> 
    <module>../lib</module> 
    </modules> 

我的问题,我怎么能建立项目作为战争,同时保持模块包含?

回答

0

模块在父pom中用于定义它的子节点,其packaging应为pom

如果您想在应用程序中包含其他项目,请改用依赖项。

<dependency> 
    <groupId>lib.project.group.id</groupId> 
    <artifactId>lib</artifactId> 
    <version>lib.project.version</version> 
</dependency> 

  • lib.project.group.id:库项目组ID
  • LIB - 库项目的工件ID
  • 您的lib项目
  • lib.project.version版本

注意:在构建您的战争项目之前先构建您的lib项目,否则构建将失败。

更清晰的做法是创建一个父pom并将war_project和lib_project定义为其模块并构建父pom,这就是没有依赖关系会失败的原因,并且您将获得已加载的战争。

+0

我最终删除该模块包含和运行就像你说的那样,在lib上安装Maven。将其添加为依赖项。那么在那之后它就会建立为一场战争 – user2168435

0

您需要拥有战争和jar父POM:

<groupId>com.greg</groupId> 
    <artifactId>spring-boot</artifactId> 
    <version>0.1.0</version> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.1.RELEASE</version> 
    </parent> 

    <modules> 
     <module>jar-project</module> 
     <module>war-project</module> 
    </modules> 

在你的战争项目包括JAR文件的依赖性:

<parent> 
    <groupId>com.greg</groupId> 
    <artifactId>spring-boot</artifactId> 
    <version>0.1.0</version> 
    </parent> 

    <artifactId>war-project</artifactId> 
    <packaging>war</packaging> 

    <dependencies> 
    <dependency> 
     <groupId>com.greg</groupId> 
     <artifactId>jar pfoject</artifactId> 
     <version>${project.version}</version> 
    </dependency> 
    </dependencies>