我们有一个与我们一起工作的人,他使用maven-assembly-
plugin打包所有依赖项。从那以后他就离开了公司,我正在努力弄清楚他是如何做到的。我现在正在学习有关maven-assembly-plugin的信息。
我们的应用程序分为与相关模块项目一起的Maven
POM项目。在下面的示例中,我包含了运行时模块项目。我试图在我的应用程序中创建一个名为运行时的模块项目,但是一旦进行任何更改,它就会失去与父项目的关联。
我们正在使用Netbeans。
+- pom.xml
+- Simulator
+- pom.xml
+- comms
+- pom.xml
+- src
+- main
+- java
+- framework
+- pom.xml
+- src
+- main
+- java
+- core
+- pom.xml
+- src
+- main
+- java
这就是我要创建的:
+- runtime
+- pom.xml
+- src
+- assemble
+- assembly (xml file)
+- target
+- Simulator
+- archive-tmp
+- classes
+- test-classes
+- Simulator (zip file)
+- config
+- data
+- scripts
经过更多的研究后,我想我可能会把车放在马前。我已经有一个包含模块项目的主项目。
编辑:
我弄清楚了为什么模块从我的主项目中消失了。 Netbeans !! 我重新启动它,我的运行时模块在那里。
那么,现在我需要在运行时模块中编辑我的POM文件吗?
如果我没看错您的问题,那么您想要做的就是将一个新的Maven模块(称为runtime
)添加到现有项目中,并使用maven-assembly-plugin
此新项目中的对其进行打包。
然后,第一步是创建Maven模块。我不确定Netbeans是否提供执行此操作的工具(Eclise这样做),但是归结为:
<modules>
父POM 的部分中,为添加新<module>
的runtime
。runtime
与父POM在同一目录级别调用的新文件夹pom.xml
在这个新文件夹中创建一个文件,将根POM声明为父POM,如下所示:<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
我有一个父pom和两个子pom,用于jar和war文件。war文件将jar文件作为pom中的依赖项。因此,构建顺序定义如下 家长 儿童罐 儿童战争 在父pom中,模块如下所示。 要部署到Jboss的最后一个工件位于父/工作区/子war/目标/项目文件夹下。战争 当我从父工作区文件夹调用maven目标时,部署失败。 mvn清理编译安装jboss为:deploy-Dmaven。测验跳过=真 我尝试在父
我有一个多模块的项目,有两个模块:war和ear模块。我正在尝试使用Maven发行版插件来管理发行版。 我的配置到目前为止... 父POM: war模块POM: ear模块POM: 正如您看到的表单日志,test-war-0.0.1-sources.jar正在上传两次。这是为什么?我怎样才能编辑我的配置,使它只上传一次?
多模块项目具有具有以下依赖关系的模块:web- 我在web模块中添加了sping-boo-gradle-plugin: 当SpringBootGradle插件下载旧的hibernate版本时,我在持久性模块中有重复的版本。 形象 我尝试覆盖web模块中的hibernate依赖项,它正在工作: 形象 为什么插件下载旧的Hibernate版本?是否有任何可能排除旧的Hibernate版本从sping-
我是maven的新手,在使用程序集插件生成zip文件时花了大约3天的时间,引用了http://www.petrikainulainen.net/programming/tips-and-tricks/creating-a-runnable-binary-distribution-with-maven-assembly-plugin/My project is multi module,所以我还引用
我曾广泛使用过Maven 目前有5个不同的maven项目,每个项目都有一个不同的pom.xml。到目前为止,它们之间存在依赖关系,如果需要,每一个都指向 中的另一个。 现在我们不喜欢的是 当我们发布子projectA时,我们需要手动修改所有将projectA作为依赖项的项目以使用新版本。Saw Maven有一个版本插件,不知道这会有什么帮助。 作为解决方案,我希望在POM之间有一个更干净的组织,并
我在项目中有两个模块(和)运行集成测试。我希望在测试之前,我的应用程序将使用liquibase启动和滚动迁移,但由于我通过集成测试模块运行应用程序,liquibase正在寻找一个关于该模块的主文件,该文件导致了错误。因为主文件位于miom应用程序()的模块中