在NetBeans 8.1中使用Vaadin插件为NetBeans创建了一个新的Vaadin 7.6.4项目,并提供了带有4个模块的多模块原型,在哪里添加添加库的依赖项?
-ui
"依赖项"的位置正确吗?这会被-production
模块继承吗?或者我也需要指定依赖项吗?还是其他地方?
我不是Maven专家,不使用Maven命令行。我使用NetBeans自己的用户界面,通过在Projects
面板中单击上下文来添加依赖项。
是的,这方面的记录很差。同意。
是的,-ui
模块是您完成所有工作并添加依赖项(Vaadin插件除外)的地方。-production
模块将自动继承-ui
,因此您永远不会实际更改生产模块上的任何内容。
应在-widgetset
项目中添加Vaadin插件。然而,我并没有直接这样做,而是使用Netbeans Vaadin插件浏览器。这个你可以从多模块项目中的任何模块激活,所以即使你在-ui
模块上激活它,它也会发现你添加了一个Vaadin插件,并将依赖项添加到-widgetset
项目上的POM,而不是你右键单击的那个模块。太好了。
当您使用多模块原型时,还有一个令人讨厌的错误,这意味着您生成的WAR将非常大,没有充分的理由。看见https://stackoverflow.com/a/35406389/1504556.修复很容易。
我正在做一个非常相似的项目。如果您有父项和依赖项,maven将从子项继承到父项。因此,请参考你需要的模块的基本pom中的每个依赖项
模块A需要依赖Z
模块B需要依赖Y
模块C需要依赖Z和Y
您的模块依赖于:
家长需要A、B、C
C需要B
所以在B中你需要输入Y的依赖项,在C中你需要B和Z的依赖项。在A中你也需要Z。
C不需要Y声明,因为它已经从B 继承了它
您可能会遇到的大问题是处理交叉继承,有时您需要告诉某些模块排除从其他jar文件继承的一些文件,例如旧版本的文件。您可以通过:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.2.0.Final</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
举个例子。希望这对有一点帮助