问题描述
在我的项目中,我使用模块对多个依赖项进行分组(即LWJGL和JOJO库),这样我就可以在不重复其定义的情况下从其他模块中使用它们(或多或少Maven Tips and Tricks: Grouping Dependencies中所述)
我仅部署一个模块,其他模块只是上述的组模块和包含示例的模块。
我使用Maven Flatten Plugin为我部署的工件获得了合理的POM。这通常工作得很好,唯一的缺点是对LWJGL / JOGL的依赖关系指向我的“组”模块。我想“扩展”(“展平”)那些依赖项,以便pom.xml
直接引用所需的工件。
可以看到整个项目on Github。我认为说明问题的重要部分是:
父pom.xml
...
<modules>
<module>examples-jogl</module>
<module>lib</module>
<module>jogl</module>
<module>lwjgl</module>
<module>examples-lwjgl</module>
</modules>
<packaging>pom</packaging>
<name>GLG2D</name>
...
LWJGL pom.xml:
<parent>
<artifactId>glg2d-parent</artifactId>
<groupId>net.opengrabeso</groupId>
<version>${projversion}</version>
</parent>
<artifactId>lwjgl</artifactId>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
<lwjgl.version>3.2.3</lwjgl.version>
</properties>
<profiles>
...
</profiles>
<dependencies>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl</artifactId>
<version>${lwjgl.version}</version>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl-glfw</artifactId>
<version>${lwjgl.version}</version>
</dependency>
<dependency>
...
正在部署的模块的扁平化pom.xml当前包含:
...
<dependencies>
...
<dependency>
<groupId>net.opengrabeso</groupId>
<artifactId>lwjgl</artifactId>
<version>0.7.4</version>
<scope>provided</scope>
</dependency>
...
</dependencies>
...
我希望它包含lwjgl
模块的依赖项-现在包含在其pom.xml
中的依赖项。
使用flatten
或其他插件可以实现吗?还是应该以不同的方式构造pom.xml
?我不介意采用其他结构,只要:
- 我不必重复使用的LWJGL / JOGL库列表
- 我可以在不同的模块中使用具有不同范围(
provided
和compile
)的LWJGL / JOGL库 - 我只能发布所需的模块(尤其是我不想将示例作为库模块的一部分发布)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)