如何在Maven之上创建/使用带有Netbeans的类库?

如何在Maven之上创建/使用带有Netbeans的类库?,maven,maven-3,netbeans-7,Maven,Maven 3,Netbeans 7,这似乎是一个愚蠢的问题,但我有点依赖于Netbeans 7.1向导。似乎没有这样做的选择 我的web应用程序是用Maven构建的,我想将它的一些包分解成一个独立构建和维护的类库(特别是JPA部分,但这不重要),然后我想从原始web应用程序中删除这些包,然后创建对我创建的工件的依赖关系 那我怎么开始呢?Netbeans新项目向导似乎不像ANT构建的项目那样具有“Java类库”选项。我能看到的最接近的选择是“Java应用程序”。是我使用它而忽略了主类,还是有其他路径我看不到 我通常很擅长收集这些东西

这似乎是一个愚蠢的问题,但我有点依赖于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插件版本以匹配最新版本,谢谢你的推荐,太好了!相关且不幸关闭的错误: