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

时间:2012-02-25 20:13:23

标签: maven maven-3 netbeans-7

这似乎是一个愚蠢的问题,但我依赖于Netbeans 7.1向导。似乎没有选择这样做。

我的网络应用程序是用Maven构建的,我想把它的一些软件包分解成一个独立构建和维护的类库(具体来说,JPA部分,但这应该不重要。)然后我想要删除这些软件包退出原始Web应用程序,然后创建对我创建的工件的依赖。

那么我该如何开始?对于“Java类库”,Netbeans New-Project向导似乎没有像ANT构建项目那样的选项。我能看到的最接近的选择是“Java Application”。这是我使用的,只是忽略了主类,还是有其他一些我看不到的路径?

我通常很擅长选择这些东西,但我的网络搜索并没有产生太大的影响。非常感谢任何帮助。

4 个答案:

答案 0 :(得分:17)

您可以使用向导“Maven” - > “Java应用程序(使用Maven的简单Java SE应用程序)”,就maven而言,libary和应用程序之间没有区别。我认为netbeans会创建一个你可以简单删除的样本App.java

对于您的用例,还可以为库和Web应用程序创建父项目。然后构建父级也将构建库和Web应用程序。它还允许您在Web应用程序上使用“依赖于构建”并首先重建库。

要创建父项目,您可以使用“POM项目”条目。目录结构理想情况如下:

- pom.xml (for parent project)
- library (folder)
    - pom.xml (for library module)
- webapp  (folder)
    - pom.xml (for webapp module)

然后,父项目应包含module元素,其中包含其他项目的相对路径:

<modules>
    <module>library</module>
    <module>webapp</module>
</modules>

库和Web应用程序像这样引用父类,groupId和version默认为与父类相同:

<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>

答案 1 :(得分:3)

你可以从Maven开始&gt; POM项目。哪个适用于类库。

此外,您可以使您的Maven项目“模块化”。在第8章和第9章中可以找到好的教程http://sonatype.com/books/mvnex-book/reference/index.html

答案 2 :(得分:2)

以下适用于NetBeans8.1中的类库。

您必须升级Maven文件中的主要插件版本(如果您不使用它,则要删除JUnit,请参阅底部)。

请勿使用New Project -> Maven -> Java Application,它不会与NetBeans-8.1中的Maven依赖项菜单系统集成。

请按照以下步骤操作:

  • 第1步:创建New Project -> Maven -> Project from Archtype然后在原型搜索过滤器中选择maven-archetype-quickstart

  • 第2步:点击下一步,然后输入您的项目/模块名称(MyLib或MyAPI),然后完成

  • 第3步:在Project Settings > Sources下立即(在您忘记之前)将源/二进制格式从1.5更改为1.8(或其他)。

  • 第4步:立即(在您忘记之前)Project Settings > Licence Headers下选择许可。

  • 步骤5:在项目浏览器的源包下创建新的(或从旧项目中复制)Java类或接口文件等。

  • 步骤6 :(可选)如果您不想拥有简单的独立模块运行/测试类,请删除public class App

  • Step7 :(强烈推荐):通过编辑pom.xml中的版本号,将主要Maven插件升级到最新版本!查找最新版本的最佳位置是检查主插件存储库下的文件夹:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/

在任何其他基于NetBeans Maven的项目中,新的“上游”库或API项目将通过Dependendies -> Add Dependency .. (Open Projects subtab)提供。当您通过Add as Dependency搜索Maven库时,它也将通过存储库管理系统提供。

如果要添加公共/共享库,只需使用Maven依赖项功能通过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 :(得分:2)

我找到了一种使用NetBeans在pom.xml中升级插件版本的更快方法。

  1. 找到插件 - &gt;插件 - &gt; pom.xml中的版本标记
  2. 双击版本号以使其突出显示
  3. 按CTRL + SPACE切换自动完成
  4. 弹出菜单允许您选择可用的版本。 Screenshot