Maven模块层次结构

时间:2013-09-27 13:34:41

标签: java android maven module pom.xml

我在父maven项目中有两个模块(maven项目):android-module和server-module。这两个模块使用相同的模型(POJO - 类)。所以我想从两个模块中提取模型,并在父项目中创建新模块。

所以我想这个:

--Project
 |--android-module
 |  -- pom.xml
 |--server-module
 |  -- pom.xml
  -- pom.xml 

重拍到这个:

--Project
 |--android-module
 |  -- pom.xml
 |--server-module
 |  -- pom.xml
 |--models-module
 |  -- pom.xml
  -- pom.xml

同时我想根据pom.xml编译并从models-module构建jar并在我的本地存储库中存储jar。然后,子pom.xml从存储库中获取它并包含在android和服务器模块中。

问题:如何告诉maven自动在我的本地存储库中构建和存储jar。

有可能吗?如果没有 - 拜托,请给我一些想法......笨蛋

2 个答案:

答案 0 :(得分:0)

只需运行mvn install。这会将打包的jar安装到〜/ .m2

中的本地仓库中

确保从根pom运行maven

答案 1 :(得分:0)

找到解决方案。这更容易。

父pom.xml:

...
<groupId>com.lutshe</groupId>
<artifactId>doiter</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

<modules>
    <module>doiter-android</module>
    <module>doiter-server</module>
    <module>doiter-model</module>
</modules>
...

child1(android项目)pom.xml:

...
<parent>
    <groupId>com.lutshe</groupId>
    <artifactId>doiter</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>

<groupId>com.lutshe</groupId>
<artifactId>doiter-android</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>apk</packaging>

<dependencies>
    <dependency>
        <groupId>com.lutshe</groupId>
        <artifactId>doiter-models</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>
...

child2(server)pom.xml:

...
<parent>
    <groupId>com.lutshe</groupId>
    <artifactId>doiter</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>

<groupId>com.doiter.server</groupId>
<artifactId>doiter-server</artifactId>
<version>0.1.0</version>
<packaging>jar</packaging>

<dependencies>
    <dependency>
        <groupId>com.lutshe</groupId>
        <artifactId>doiter-models</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>
...

child3(共享模型)pom.xml:

...
<parent>
    <groupId>com.lutshe</groupId>
    <artifactId>doiter</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>

<groupId>com.lutshe</groupId>
<artifactId>doiter-model</artifactId>
<version>1.0-SNAPSHOT</version>
...