MulitModule项目依赖管理

时间:2018-02-18 15:41:28

标签: maven pom.xml

我正在处理项目结构为

的项目

根  LIB   xyz.jar  模块   模块1   模块2 现在我想在module1中包含xyz.jar,但是由于项目的多模块结构,我无法直接通过maven添加jar。

我尝试使用

<plugin>
                <groupId>org.commonjava.maven.plugins</groupId>
                <artifactId>directory-maven-plugin</artifactId>
                <version>0.1</version>
                <executions>
                    <execution>
                        <id>directories</id>
                        <goals>
                            <goal>highest-basedir</goal>
                        </goals>
                        <phase>initialize</phase>
                        <configuration>
                            <property>multi.module.project.root.dir</property>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

然后使用

<dependency>
            <groupId>org.abc.com</groupId>
            <artifactId>xyz</artifactId>
            <version>0.1.0</version>
            <scope>system</scope>
            <systemPath>${multi.module.project.root.dir}/lib/xyz.jar</systemPath>
        </dependency>

但抛出错误指定jar的绝对路径。 接下来我尝试使用de

pendency management in parent pom  by specifying 
<dependency>
                <groupId>org.abc.com</groupId>
                <artifactId>xyz</artifactId>
                <version>0.1.0</version>
                <scope>system</scope>
                <systemPath>${pom.basedir}/lib/xyz.jar</systemPath>
            </dependency>

这解决了依赖关系,但我无法在module1的子pom中使用依赖关系

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您正在使用的directory-maven-plugin的文档明确说明了插件生成的变量:

  

它们仅在插件配置中有用,而不是在POM插入期间。

这意味着你不能像你正在做的那样使用它。

作为替代方案,我会考虑提及this SO answer