这似乎是一个愚蠢的问题,但我依赖于Netbeans 7.1向导。似乎没有选择这样做。
我的网络应用程序是用Maven构建的,我想把它的一些软件包分解成一个独立构建和维护的类库(具体来说,JPA部分,但这应该不重要。)然后我想要删除这些软件包退出原始Web应用程序,然后创建对我创建的工件的依赖。
那么我该如何开始?对于“Java类库”,Netbeans New-Project向导似乎没有像ANT构建项目那样的选项。我能看到的最接近的选择是“Java Application”。这是我使用的,只是忽略了主类,还是有其他一些我看不到的路径?
我通常很擅长选择这些东西,但我的网络搜索并没有产生太大的影响。非常感谢任何帮助。
答案 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)