如何在Maven之上创建/使用带有Netbeans的类库?
这似乎是一个愚蠢的问题,但我有点依赖于Netbeans 7.1向导。似乎没有这样做的选择 我的web应用程序是用Maven构建的,我想将它的一些包分解成一个独立构建和维护的类库(特别是JPA部分,但这不重要),然后我想从原始web应用程序中删除这些包,然后创建对我创建的工件的依赖关系 那我怎么开始呢?Netbeans新项目向导似乎不像ANT构建的项目那样具有“Java类库”选项。我能看到的最接近的选择是“Java应用程序”。是我使用它而忽略了主类,还是有其他路径我看不到如何在Maven之上创建/使用带有Netbeans的类库?,maven,maven-3,netbeans-7,Maven,Maven 3,Netbeans 7,这似乎是一个愚蠢的问题,但我有点依赖于Netbeans 7.1向导。似乎没有这样做的选择 我的web应用程序是用Maven构建的,我想将它的一些包分解成一个独立构建和维护的类库(特别是JPA部分,但这不重要),然后我想从原始web应用程序中删除这些包,然后创建对我创建的工件的依赖关系 那我怎么开始呢?Netbeans新项目向导似乎不像ANT构建的项目那样具有“Java类库”选项。我能看到的最接近的选择是“Java应用程序”。是我使用它而忽略了主类,还是有其他路径我看不到 我通常很擅长收集这些东西
我通常很擅长收集这些东西,但我的网络搜索并没有带来太多收益。非常感谢您的帮助。您可以使用“Maven”->“Java应用程序(使用Maven的简单Java SE应用程序)”,就Maven而言,库和应用程序之间没有区别。我认为netbeans将创建一个示例
App.java
,您可以简单地删除它
对于您的用例来说,为库和webapplication创建父项目也是有意义的。构建父级还将构建库和web应用程序。它还允许您在web应用程序上使用“带依赖项的构建”,并首先重建库
要创建父项目,可以使用“POM项目”条目。理想情况下,目录结构如下所示:
- pom.xml (for parent project)
- library (folder)
- pom.xml (for library module)
- webapp (folder)
- pom.xml (for webapp module)
然后,父项目应包含包含其他项目相对路径的模块元素:
<modules>
<module>library</module>
<module>webapp</module>
</modules>
图书馆
网络应用
库和web应用程序如下引用父级,groupId和版本默认与父级相同:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>myGroupId</groupId>
<artifactId>parentArtifactId</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>libraryArtifactId</artifactId>
4.0.0
myGroupId
父工件
1.0-快照
../pom.xml
图书馆人工活动
您可以从Maven>POM项目开始。它适用于类库
您还可以使您的Maven项目“模块化”。好的教程可以在第8章和第9章中找到。以下内容非常适合NetBeans8.1中的类库
您必须升级Maven文件中的主要插件版本(如果您不使用JUnit,则要删除JUnit,请参见底部)
不要使用新项目->Maven->Java应用程序
,它不会与NetBeans-8.1中的Maven依赖项菜单系统集成。
遵循以下步骤:
- 步骤1:从Archtype创建一个
New Project->Maven->Project
,然后在Archtype搜索过滤器中选择Maven archetype quickstart
- 步骤2:单击“下一步”,然后输入项目/模块名称(MyLib或MyAPI),然后单击“完成”
- 步骤3:立即(在忘记之前)在
Project Settings>Sources
下将源代码/二进制格式从1.5更改为1.8(或其他)
- 步骤4:立即(在忘记之前)在
项目设置>许可证标题下选择许可证
- 步骤5:在项目浏览器的源程序包下创建新的(或从旧项目复制)Java类或接口文件等
- 步骤6:(可选)如果不想拥有简单的独立模块运行/测试类,请删除
公共类应用程序
- 步骤7:(强烈建议):通过编辑pom.xml中的版本号,将主要Maven插件升级到最新版本!查找最新版本的最佳位置是检查主插件存储库下的文件夹:
在任何其他基于NetBeans Maven的项目中,新的“上游”库或API项目将通过Dependendies->adddependency.提供。。(打开项目子选项卡)
。当您通过Add as Dependency
搜索Maven库时,它还将通过存储库管理系统提供
如果您想添加公共/共享库,只需使用Maven Dependencies功能通过MyLib或MyAPI模块添加它们;它们将传播到任何“下游”模块,该模块将MyLib或MyAPI模块添加为依赖项
可选:另外,默认情况下,pom.xml将包括JUnit:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
朱尼特
朱尼特
3.8.1
测试
如果你不想要它,就删除它。我在pom.xml中找到了一种使用NetBeans升级插件版本的更快方法
在pom.xml中找到plugins->plugin->version标签
双击版本号,使其高亮显示
按CTRL+SPACE切换自动完成
弹出菜单允许您选择可用的版本。
好吧,我想我明白了——当我回家后,我会试着玩这个,看看我是否能让它工作。附言:你写了“这似乎是一个愚蠢的问题”。人们常说,世上没有愚蠢的问题;事实上,我认为有一些愚蠢的问题,但你的问题不在其中+因为我的请求,这对我很有帮助。嗯,当时我觉得是这样的。这些天来,有太多的狙击手对否决投票问题感到非常自豪,我想这可能是一个目标。但是谢谢你的回答。@AlanObject看到新编辑推荐升级Maven插件版本以匹配最新版本,谢谢你的推荐,太好了!相关且不幸关闭的错误: