Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为maven父项目生成jar_Maven_Parent_Pom.xml - Fatal编程技术网

如何为maven父项目生成jar

如何为maven父项目生成jar,maven,parent,pom.xml,Maven,Parent,Pom.xml,Maven要求父项目具有 pom 父对象的pom.xml中的子句。安装这样的项目时,只有一个pom文件生成到maven存储库中。无论父项目是否有Java代码,都不会生成Jar文件。这迫使我有额外的空父项目,这太过分了。从逻辑上讲,我的一些图书馆可以同时成为父母 是否有一种方法可以为父项目生成pom和jar文件,而无需在安装之间删除/添加packaging子句?使用Maven jar插件和Maven Build Helper。示例POM: 4.0.0 测试 测试 1 聚甲醛 org.codeha

Maven要求父项目具有

pom

父对象的pom.xml中的子句。安装这样的项目时,只有一个pom文件生成到maven存储库中。无论父项目是否有Java代码,都不会生成Jar文件。这迫使我有额外的空父项目,这太过分了。从逻辑上讲,我的一些图书馆可以同时成为父母


是否有一种方法可以为父项目生成pom和jar文件,而无需在安装之间删除/添加
packaging
子句?

使用Maven jar插件和Maven Build Helper。示例POM:


4.0.0
测试
测试
1
聚甲醛
org.codehaus.mojo
构建助手maven插件
1.7
附加工件
包裹
附加工件
测试-${project.version}
罐子
org.apache.maven.plugins
maven jar插件
2.4
违约
罐子
包裹
Maven构建结果:

mvn install
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building test 1.0
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- build-helper-maven-plugin:1.7:attach-artifact (attach-artifacts) @ test ---
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default) @ test ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ test ---
[INFO] Installing /home/username/projects/test/pom.xml to /home/username/.m2/repository/test/test/1.0/test-1.0.pom
[INFO] Installing /home/username/projects/test/test-1.0 to /home/username/.m2/repository/test/test/1.0/test-1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.805s
[INFO] Finished at: Thu Sep 06 13:33:20 EDT 2012
[INFO] Final Memory: 4M/119M
[INFO] ------------------------------------------------------------------------
关于Maven实践的说明:


父模块通常是定义所有子模块共同使用的依赖项和插件的地方。它很少有自己的产出。您可能希望有一个“分发”子模块来聚合所有其他模块工件,而不是尝试在父模块中进行此操作。

谢谢您,noahz,谢谢您的解决方案。我希望为父项目生成jar文件,以避免Eclipse工作区中出现额外的空项目,从而简化项目关系。我是马文的新手,所以我可能错了。您建议使用空的父项目吗?我怀疑您的解决方案会与具有自己的jar构建插件的子项目发生冲突。拥有一个“空”(不生成工件)的父项目是非常好的,因为它只用于定义子项目使用的属性设置、依赖项版本、插件等。顺便说一句,如果你使用我的解决方案,请点击复选框接受答案。非常感谢你的回答和解释。我将按照您的建议使用空项目作为家长。这有助于我构建项目,但它找不到主类。当我删除模块然后构建时,当我运行它时,它发现主类没有问题。但是,当它链接了模块并配置了上述插件时,它会成功构建,但找不到主插件。@Trevor我建议您打开一个新的StackOverflow问题,参考这个问题,但要关注您的具体问题