Having a maven project build its own dependencies?

前端 未结 7 2231
故里飘歌
故里飘歌 2021-02-13 03:40

With maven is it possible to have a top-level project who\'s packaging type is \"war\" which will build itself and all of its dependent modules (packaged as jar) and have the bu

相关标签:
7条回答
  • 2021-02-13 04:43

    super_aardvark suggested correct way but,
    For requirement I would suggest following structure It is suitable and good structure also :

    Consedering ProjectA as project-webapp , ProjectB as project-core

    You can have following structure :

    Your Grand Project :

    <?xml version="1.0" encoding="UTF-8"?>
    <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/maven-v4_0_0.xsd">
    
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.mycompany.project</groupId>
        <artifactId>project</artifactId>
        <version>2.0-SNAPSHOT</version>
        <packaging>pom</packaging>
    
        <name>Project Repository System</name>
        <description>Project Repository System R2</description>
    
        <modules>
            <module>project-core</module>
            <module>project-webapp</module>
        </modules>
     </project>
    

    Your WebApp Project:

    <?xml version="1.0" encoding="UTF-8"?>
    <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/maven-v4_0_0.xsd">
        <parent>
            <groupId>com.mycompany.project</groupId>
            <artifactId>project</artifactId>
            <version>2.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>project-webapp</artifactId>
        <version>2.0-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>Project Web Application</name>
        <description>Project Repository</description>
        <dependency>
                <groupId>com.mycompany.project</groupId>
                <artifactId>project-core</artifactId>
                <version>2.0-SNAPSHOT</version>
         </dependency>
    
     </project>
    

    Your Core Project:

    <project>
        <parent>
            <groupId>com.mycompany.project</groupId>
            <artifactId>project</artifactId>
            <version>2.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>project-core</artifactId>
        <version>2.0-SNAPSHOT</version>
        <packaging>jar</packaging>
        <name>Project Core</name>
        <description>ProjectCore</description>
    
     </project>
    

    Your Directory structure should look like:

    -------Grand Parent.pom
      |
      |--------project-webapp
      |                     |
      |                     project-webapp.pom
      | 
      | -------project-core.pom
                            |
                           project-core.pom
    

    From parent pom execute mvn clean install it will build both the web-app and core project

    0 讨论(0)
提交回复
热议问题